gpt4 book ai didi

按列表顺序对 pandas DataFrame 进行排序

转载 作者:行者123 更新时间:2023-12-02 04:08:57 25 4
gpt4 key购买 nike

所以我有一个pandas DataFrame,df,其中的列代表分类分类(即王国,门,类等...)我还有一个分类标签列表,与我希望DataFrame的顺序相对应订购者。

列表看起来像这样:

class_list=['Gammaproteobacteria', 'Bacteroidetes', 'Negativicutes', 'Clostridia', 'Bacilli', 'Actinobacteria', 'Betaproteobacteria', 'delta/epsilon subdivisions', 'Synergistia', 'Mollicutes', 'Nitrospira', 'Spirochaetia', 'Thermotogae', 'Aquificae', 'Fimbriimonas', 'Gemmatimonadetes', 'Dehalococcoidia', 'Oscillatoriophycideae', 'Chlamydiae', 'Nostocales', 'Thermodesulfobacteria', 'Erysipelotrichia', 'Chlorobi', 'Deinococci']

此列表对应于 Dataframe栏目df['Class'] 。我想根据列表的顺序对整个数据帧的所有行进行排序,如 df['Class']目前处于不同的顺序。最好的方法是什么?

最佳答案

您可以将 Class 列设为索引列

df = df.set_index('Class')

然后使用df.loc通过class_list重新索引DataFrame:

df.loc[class_list]

最小示例:

>>> df = pd.DataFrame({'Class': ['Gammaproteobacteria', 'Bacteroidetes', 'Negativicutes'], 'Number': [3, 5, 6]})
>>> df
Class Number
0 Gammaproteobacteria 3
1 Bacteroidetes 5
2 Negativicutes 6

>>> df = df.set_index('Class')
>>> df.loc[['Bacteroidetes', 'Negativicutes', 'Gammaproteobacteria']]
Number
Bacteroidetes 5
Negativicutes 6
Gammaproteobacteria 3

关于按列表顺序对 pandas DataFrame 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26202926/

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