首页 > 解决方案 > 重复并增加 Pandas 的列值

问题描述

我对 Pandas 很陌生,所以这听起来很愚蠢。我的数据框如下所示: 在此处输入图像描述

目标是检查字段“D”并创建具有相同 ID 的 D 行,但每行将“时间”增加 5。例如,如果 ID = 3、Time = 0 和 D = 5,那么我希望在具有相同 ID 的原始行之后再有 5 行,但每行的时间增加 5。因此时间字段将为 0、5、10、15、20、25,而行中的其他字段保持不变。

这在熊猫中可能吗?我试过以下

df = pd.DataFrame(probeTTableTups, columns=['ID','Time','D'])
df2 = df.loc[df.index.repeat(df.D)].reset_index(drop=True)
df2['Time'] += 5
print(df2)

我尝试重复行 D 次并将 Time 字段增加 5,但它只是为 Time 创建了相同的值,而我需要在 Time 列中具有增量数字。

任何帮助深表感谢!

标签: pythonpython-3.xpandasdataframe

解决方案


用于GroupBy.cumcount每个重复索引值和多个的计数器5

df2 = df.loc[df.index.repeat(df.D)]
df2['Time'] = df2.groupby(level=0).cumcount() * 5

如果需要还添加Times

df2['Time'] = df2.groupby(level=0).cumcount() * 5 + df2['Time']

推荐阅读