我的问题与this question有关
import pandas as pd
df = pd.DataFrame(
[['A', 'X', 3], ['A', 'X', 5], ['A', 'Y', 7], ['A', 'Y', 1],
['B', 'X', 3], ['B', 'X', 1], ['B', 'X', 3], ['B', 'Y', 1],
['C', 'X', 7], ['C', 'Y', 4], ['C', 'Y', 1], ['C', 'Y', 6]],
columns=['c1', 'c2', 'v1'])
df['CNT'] = df.groupby(['c1', 'c2']).cumcount()+1
我有“CNT”栏。但我想把它按c2分组,分别得到X和Y的累积计数。你知道吗
c1 c2 v1 CNT Xcnt Ycnt
0 A X 3 1 1 0
1 A X 5 2 2 0
2 A Y 7 1 2 1
3 A Y 1 2 2 2
4 B X 3 1 1 0
5 B X 1 2 2 0
6 B X 3 3 3 0
7 B Y 1 1 3 1
8 C X 7 1 1 0
9 C Y 4 1 1 1
10 C Y 1 2 1 2
11 C Y 6 3 1 3
有什么建议吗?我刚刚开始探索熊猫,感谢你的帮助。你知道吗
我不知道如何直接执行此操作,但从计算的
CNT
列开始,可以按如下方式执行:制作
Xcnt
和Ycnt
列:接下来,我们要通过正向填充来填充每个
c1
组的NaN:对于
Ycnt
,需要一个额外的fillna来填充将NaN转换为0,其中组以NaN开头(不能向前填充)。你知道吗相关问题 更多 >
编程相关推荐