2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊
你可以像這樣使用 group by
df.groupby("A").apply(lambda x: x[["B"]].copy()).reset_index(level=0)
但是如果您不想對(duì)組進(jìn)行某些操作,則簡單排序?qū)⑵鹱饔?/p>
df.sort_values("A")
## or
df.sort_values(["A", "B"])

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
您可以創(chuàng)建一個(gè)字典,將 A 列映射到它首次出現(xiàn)時(shí)的索引,然后使用它對(duì) df 進(jìn)行排序:
d = {}
c = 0
for i in df.itertuples():
if i.A not in d:
d.update({i.A: c})
c += 1
df['m'] = df.A.map(d)
df = df.sort_values(by='m').drop('m', axis=1)
A B
0 r1 0
3 r1 3
7 r1 7
1 r3 3
2 r3 5
4 r3 6
5 r4 2
6 r2 1
添加回答
舉報(bào)