gpt4 book ai didi

python - 在 Pandas 数据框中选择行时如何保持顺序?

转载 作者:太空狗 更新时间:2023-10-29 18:15:53 24 4
gpt4 key购买 nike

我想按列表中给定的特定顺序选择行。例如

这个数据框

a=[['car',1],['bike',3],['jewel',2],['tv',5],['phone',6]]

df=pd.DataFrame(a,columns=['items','quantity'])

>>> df
items quantity
0 car 1
1 bike 3
2 jewel 2
3 tv 5
4 phone 6

我想获取顺序为 ['tv','car','phone'] 的行,即第一行 tv,然后是 car,最后是 phone。我试过这个方法,但它不保持秩序

arr=['tv','car','phone']

df.loc[df['items'].isin(arr)]

items quantity
0 car 1
3 tv 5
4 phone 6

最佳答案

这是一个使用 Index.get_indexer 的非侵入式解决方案这不涉及设置索引:

df.iloc[pd.Index(df['items']).get_indexer(['tv','car','phone'])]

items quantity
3 tv 5
0 car 1
4 phone 6

请注意,如果这将成为经常发生的事情(我指的是用列上的列表“索引”),则最好将该列转换为索引。如果您对它进行排序,将获得加分。

df2 = df.set_index('items')
df2.loc[['tv','car','phone']]

quantity
items
tv 5
car 1
phone 6

关于python - 在 Pandas 数据框中选择行时如何保持顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56658723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com