如何获取一个值在Pandas Dataframe 中的一列中出现在另一列中的“次数”[duplicate]

oyjwcjzk  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(174)
    • 此问题在此处已有答案**:

Add a sequential counter column on groups to a pandas dataframe(3个答案)
3天前关闭。
我需要在dataframe中的一列中获得特定值在另一列中出现的确切"次数"。为了简化,需要列中重复值的累积计数
请看下面的例子:
| 列_A|列B|
| - ------|- ------|
| 测试1|一些1|
| 测试2|约2|
| 测试2|约3|
| 测试2|约4|
| 测试3|约5|
| 测试1|约6|
| 测试3|约7|
我需要一个col_C来获取col_A值的确切出现次数。
| 列_A|列B|* * C列**|
| - ------|- ------|- ------|
| 测试1|一些1|1个|
| 测试2|约2|1个|
| 测试2|约3|第二章|
| 测试2|约4|三个|
| 测试3|约5|1个|
| 测试1|约6|第二章|
| 测试3|约7|第二章|
在row1中-"test1"第一次出现,因此我们在col_C中得到"1";在row2中-"test2"第一次出现,因此我们在col_C中得到"1";在row3中-"test2"第二次出现,因此我们在col_C中得到"2",依此类推
确实使用了value_counts,但我只获得了col_C中col_A值的计数。我需要准确的值。
谢谢你的帮助!

qxsslcnc

qxsslcnc1#

我们要查找的是groupby中的cumcount(),它从0开始计算每列中相同值的数量。
这个代码应该可以工作。

s = df.groupby('col_A').cumcount()
df['col_C'] =  s+1

相关问题