python - 根据列重复行

标签 python pandas

给出的表格如下

  Destination  Capacity  TruckNum
0       dest1         1          1
1       dest2         1          2
2       dest3         2          2
3       dest4         2          2

来自代码

df=pd.DataFrame({"Destination":["dest1","dest2","dest3","dest4"], "Capacity":[1,1,2,2], "TruckNum":[1,2,2,2]})
  

我希望根据TruckNum复制行,即期望的结果是:

  Destination  Capacity  
0       dest1         1           
1       dest2         1           
2       dest2         1           
3       dest3         2           
4       dest3         2           
5       dest4         2           
6       dest4         2           

有没有简单的方法可以实现这一点?

最佳答案

尝试使用repeat进行重新索引

out = df.reindex(df.index.repeat(df.TruckNum))
Out[133]: 
  Destination  Capacity  TruckNum
0       dest1         1         1
1       dest2         1         2
1       dest2         1         2
2       dest3         2         2
2       dest3         2         2
3       dest4         2         2
3       dest4         2         2

关于python - 根据列重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72876921/

相关文章:

python - 如何创建一个包含方程的函数并将其应用于不同的数据帧?

Python Pandas 根据日期为多行添加值

python - Pandas - 过滤和正则表达式搜索 DataFrame 的索引

python - 在下一个方法中使用正则表达式和捕获组

python - Scrapy 没有给出任何输出

python - 生成一维高斯核的最简单方法

python - 使用 df2gsheets 将 pandas DF 从 python 导入 google 表时出现数据格式问题

python - 将参与者随机重新分配到组中,以便最初来自同一组的参与者最终不会出现在同一组中

python - 这里有人尝试过使用 iSeries Python 端口吗?

python - Series.index 和 Series.key() 之间的主要区别是什么?他们返回完全相同的结果