ℕʘʘ*_*ḆḽḘ 3 python dataframe pandas
我有一个包含许多列的大型pandas数据框.
我想更改列的顺序,以便只显示其中的一部分.我不关心其余的排序(并且有太多的变量可以列出所有)
例如,如果我的数据框是这样的
a b c d e f g h i
5 8 7 2 1 4 1 2 3
1 4 2 2 3 4 1 5 3
Run Code Online (Sandbox Code Playgroud)
我想指定列的子集
mysubset=['d','f'] 并重新排序数据框,以便现在列的顺序
d,f,a,b,c,e,g,h,i
有没有办法以熊猫式的方式做到这一点?
您可以使用列掩码:
>>> mysubset = ["d","f"]
>>> mask = df.columns.isin(mysubset)
>>> pd.concat([df.loc[:,mask], df.loc[:,~mask]], axis=1)
d f a b c e g h i
0 2 4 5 8 7 1 1 2 3
1 2 4 1 4 2 3 1 5 3
Run Code Online (Sandbox Code Playgroud)
或使用sorted:
>>> mysubset = ["d","f"]
>>> df[sorted(df, key=lambda x: x not in mysubset)]
d f a b c e g h i
0 2 4 5 8 7 1 1 2 3
1 2 4 1 4 2 3 1 5 3
Run Code Online (Sandbox Code Playgroud)
这工作,因为x not in mysubset将假的d和f,和假<真.