我有一个名为df的pandas DataFrame,其中的列代表分类学分类(即王国、门、纲等)。我还有一个分类标签列表,这些标签对应着我希望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']
目前的顺序不同。最好的方法是什么?
df = df.reindex(some_list)
,请参见此处。虽然DataFrame.loc[]
主要是基于标签进行操作,但也可以与布尔数组一起使用,详见此处。因此,如果索引最终变成布尔类型,并且您尝试使用df = df.loc[[True,False]]
进行重新索引,那么您将会抛出第二行数据。请参见 https://dev59.com/zV0a5IYBdhLWcg3wuKs7#30010004。 - Wayne