gpt4 book ai didi

python - Pandas 'isin',输出保持输入列表的顺序

转载 作者:太空狗 更新时间:2023-10-29 19:25:31 25 4
gpt4 key购买 nike

当我有一个数据框时

df = DataFrame({'A': [5, 6, 3, 4], 'B': [1, 2, 3, 5]})
df

A B
0 5 1
1 6 2
2 3 3
3 4 5

我可以用

df[df['A'].isin([3, 6])]

为了选择具有传递值的行。

还有办法保持输入列表的顺序吗?

所以我的输出不是:

   A  B
1 6 2
2 3 3

但是

   A  B
1 3 3
2 6 2

最佳答案

这有点长,但它有效。 isin(),然后根据列表进行 sort_values()。

df = pandas.DataFrame({'A' : [5,6,3,4], 'B' : [1,2,3,5]})
mylist = [3,6]
ndf = df[df['A'].isin(mylist)]
ndf['sort_cat'] = pandas.Categorical(ndf['A'], categories=mylist, ordered=True)
ndf.sort_values('sort_cat', inplace=True)
ndf.reset_index(inplace=True)
print ndf
A B sort_cat
2 3 3 3
1 6 2 6

(我根据 sort pandas dataframe based on list 回答这个问题)

关于python - Pandas 'isin',输出保持输入列表的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23414161/

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