我有一个结构如下的 Dataframe
df = pd.DataFrame([
(1000, 'Frank', 'Hugo'),
(100, 'Peter', 'Frank'),
(10000, 'Hugo', 'James'),
(300, 'James', 'Jennifer'),
(250, 'Frank', 'Hugo'),
(550, 'Peter', 'Frank'),
(10000, 'Frank', 'Hugo')
], columns=['Amount', 'Payer', 'Payee'])
而且,根据 Dataframe 中包含的信息(大约2M行),我应该创建一个列,其中包含付款人以前与同一收款人进行过多少次交易的信息。最终目标应该是为两个用户之间的每一次新交易设置一个标记。我应该得到的输出如下:
df = pd.DataFrame([
(1000, 'Frank', 'Hugo', 0),
(100, 'Peter', 'Frank', 0),
(10000, 'Hugo', 'James', 0),
(300, 'James', 'Jennifer', 0),
(250, 'Frank', 'Hugo', 1),
(550, 'Peter', 'Frank', 1),
(10000, 'Frank', 'Hugo', 2)
], columns=['Amount', 'Payer', 'Payee', 'Previous_transactions'])
我真的搞不懂,我只是被困在
count = df['Payee'].groupby(df['Payer']).value_counts()
但我觉得我离解决方案还很远,因为这只会生成一个不同长度的列表。
非常感谢:)
2条答案
按热度按时间2vuwiymt1#
sh7euo9m2#
您可以使用**
cumcount
:**