我正在嘗試將 groupby 對象中每個單獨記錄的索引(或運行計數(shù))放入列中。我不必是 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看起來這應該很容易,但是如果不循環(huán)遍歷整個數(shù)據(jù)框,我嘗試過的任何事情都沒有真正接近,我希望避免這種情況。謝謝
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
提交
取消