数据帧中的列排序

2024-10-03 23:30:28 发布

您现在位置:Python中文网/ 问答频道 /正文

最近更新到pandas 0.17.0,我正在尝试按字母顺序排列数据框中的列。在

以下是当前列标签:

['UX2', 'RHO1', 'RHO3', 'RHO2', 'RHO4', 'UX1', 'UX4', 'UX3']

我希望他们这样:

^{pr2}$

我能做到这一点的唯一方法是遵循3年前的这一点:How to change the order of DataFrame columns?

在0.17.0中是否有一种内置的方法来实现这一点?在


Tags: 数据方法pandas字母标签howpr2rho1
3条回答

按所需顺序创建列标签列表。在

cols = ['RHO1', 'RHO2', 'RHO3', 'RHO4', 'UX1', 'UX2', 'UX3', 'UX4']

然后将此顺序分配给数据帧df:

^{pr2}$

你可以把它们分类然后放回去。假设你有这个:

df = pd.DataFrame()
for i, n in enumerate(['UX2', 'RHO1', 'RHO3', 'RHO2', 'RHO4', 'UX1', 'UX4', 'UX3']):
    df[n] = [i]

看起来像这样:

^{pr2}$

这样做:

df = df[ sorted(df.columns)]

你应该看到:

df
   RHO1  RHO2  RHO3  RHO4  UX1  UX2  UX3  UX4
0     1     3     2     4    5    0    7    6

要在这里按字母顺序对列进行排序,只需使用sort_index

df.sort_index(axis=1)

该方法返回一个重新编制索引的DataFrame,其中列的顺序正确。在

这假设所有的列标签都是字符串(它不适用于字符串和整数的混合)。如果不是,那么您可能需要向reindex方法传递一个显式的顺序。在

相关问题 更多 >