【发布时间】:2021-10-24 22:25:38
【问题描述】:
我的输入数据框如下:
使用以下代码行生成
l = [["a", 12, 12], ["a", 12, 33.], ["b", 12.3, 12.3], ["a", 13, 1]]
df = pd.DataFrame(l, columns=["a", "b", "c"])
我目前可以累计频率如下
使用
df['freq'] = df.groupby(by=["a","b"]).cumcount()+1
它考虑了a列和b列中的常见值并计算它们。但是,我只想在 b 列值不同而 a 列值相同时才添加频率计数。下图显示了所需输出的一种形式:
如何在 pandas 中以优化的方式实现这一点?
【问题讨论】:
标签: python pandas dataframe pandas-groupby frequency