通过迭代另一个列创建一个列



我有两列,一列是ID,另一列是交易日期。

2019-04-302020-12-15

使用GroupBy.cumcount作为计数器,并将1强制转换为字符串,因此可能添加Order_:

df['Type'] = 'Order_' + df.groupby('ID').cumcount().add(1).astype(str)
df['diff'] = df.groupby('ID')['Date'].diff().dt.days

我遇到了一个问题,当我透视表时,我们按字母顺序排序日期(Order_1, Order_10, Order_100,…)而不是Order_1, Order_2。因为它是一个字符串。有办法解决这个问题吗?

将值转换为数字,然后使用DataFrame.add_prefix:

df['Type'] = df.groupby('ID').cumcount().add(1)
df1 = df.pivot('ID','Type','diff').add_prefix('Order_')