gpt4 book ai didi

python - 按月和年对数据框列进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:45 25 4
gpt4 key购买 nike

我正在查看数据框中的每月数据。列标题都是字符串,从日期时间转换而来。这是我到目前为止的最终输出:

                             Feb 18  Jan 18  Mar 18
Flavor
Vanilla 16.0 10.0 0.0
Chocolate 20.0 20.0 16.0

似乎列是按字母顺序排序的。有没有一种方法可以按月和年对这些字符串类型的列进行排序?是否涉及使用前缀?

最佳答案

您可以将您的列名转为日期时间,然后对它们进行排序:

df.columns = pd.to_datetime(df.columns, format='%b %y')

df = df[sorted(df.columns)]

>>> df
2018-01-01 2018-02-01 2018-03-01
Flavor
Vanilla 10.0 16.0 0.0
Chocolate 20.0 20.0 16.0

如果您想要恢复原来的字符串列名称,只需添加:

df.columns = df.columns.strftime('%b %y')

>>> df
Jan 18 Feb 18 Mar 18
Flavor
Vanilla 10.0 16.0 0.0
Chocolate 20.0 20.0 16.0

另一种方法是使用带键的 sorted 在一行中完成所有操作(感谢@SpghttCd 的想法):

df[sorted(df.columns, key = lambda x: pd.to_datetime(x, format='%b %y'))]

关于python - 按月和年对数据框列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50630910/

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