use*_*036 4 python dataframe pandas
我想根据两列 (index_start和index_end) 中的数值扩展我的数据框。我的 df 看起来像这样:
item  index_start  index_end    
A          1            3
B          4            7
Run Code Online (Sandbox Code Playgroud)
我希望它扩展以创建从 1 到 3 的 A 行和从 4 到 7 的 B 行,就像这样。
item  index_start  index_end    index
A          1            3         1
A          1            3         2
A          1            3         3
B          4            7         4
B          4            7         5
B          4            7         6
B          4            7         7
Run Code Online (Sandbox Code Playgroud)
不确定如何在 Python/pandas 中实现这一点。
你可以用 .explode()
df['index'] = df.apply(lambda row: list(range(row['index_start'], row['index_end']+1)), axis=1)
df.explode('index')
  item  index_start  index_end index
0    A            1          3     1
0    A            1          3     2
0    A            1          3     3
1    B            4          7     4
1    B            4          7     5
1    B            4          7     6
1    B            4          7     7
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           77 次  |  
        
|   最近记录:  |