python - 根据列值生成行数 - Pandas/Python

标签 python pandas dataframe

我想根据两列( index_startindex_end )中的数值扩展我的数据框。我的 df 看起来像这样:

item  index_start  index_end    
A          1            3
B          4            7
我希望它扩展以创建从 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
不确定如何在 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

关于python - 根据列值生成行数 - Pandas/Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68926007/

相关文章:

python - 避免在使用 Pandas 数据框读取时自动将数据转换为 int

python - Pandas:使用列中已有的特定有序值填充缺失的索引。

Python:克莱因瓶的 3D 图

python - 构建图像分类的初始架构。喀拉斯。值错误

python-3.x - 如何计算每组中的记录数并将它们添加到主数据集中?

python - 使用非唯一索引从 pandas DataFrame 中删除行

python - 将系列设置为索引

与 R data.frame 类似的 Java 对象

python - 删除所有列中具有相同值的行

python - 如何检索 id_token 以访问 Google Cloud Functions?