我正在尝试将 groupby 对象中每个单独记录的索引(或运行计数)放入列中。我不必是 groupby,但顺序必须保持不变,例如,我想按 C 列排序和重新索引:df = pd.DataFrame([[1, 2, 'Foo'], [1, 3, 'Foo'], [4, 6,'Bar'], [7,8,'Bar']], columns=['A', 'B', 'C'])Out[72]: A B C0 1 2 Foo1 1 3 Foo2 4 6 Bar3 7 8 Bar我想要的输出是:Out[75]: A B C sorted0 1 2 Foo 11 1 3 Foo 22 4 6 Bar 13 7 8 Bar 2看起来这应该很容易,但是如果不循环遍历整个数据框,我尝试过的任何事情都没有真正接近,我希望避免这种情况。谢谢
1 回答

胡子哥哥
TA贡献1825条经验 获得超6个赞
尝试cumcount:
>>> df = pd.DataFrame([[1, 2, 'Foo'],
... [1, 3, 'Foo'],
... [4, 6,'Bar'],
... [7,8,'Bar']],
... columns=['A', 'B', 'C'])
>>> df["sorted"]=df.groupby("C").cumcount()+1
>>> df
A B C sorted
0 1 2 Foo 1
1 1 3 Foo 2
2 4 6 Bar 1
3 7 8 Bar 2
添加回答
举报
0/150
提交
取消