按日期对 Pandas 数据帧小时进行排序

时间:2021-04-28 14:54:03

标签: python pandas

我通过导入 CSV 文件制作了一个数据框。我将日期列转换为日期时间和分隔的小时数。我将小时 24 替换为 0 放在第一行。

将 24 替换为 0:

df['Hour'] = df['Hour'].replace([24], 0)
df

结果如下:

           Hour  Value
Date        
2016-01-01  1   -1.09
2016-01-01  2   -2.41
2016-01-01  12  0.00
2016-01-01  13  0.00
2016-01-01  14  0.00
2016-01-01  0   0.00
... ... ...
2020-12-31  20  19.69
2020-12-31  21  20.78
2020-12-31  22  27.85
2020-12-31  23  19.68
2020-12-31  0   27.37

此外,我一直在尝试按日期对小时列进行排序。但是,在对小时进行排序时,它不会产生我想要的结果。我应该编写什么代码才能获得下表示例:

例如(这是一个欲望表),

           Hour  Value
Date        
2016-01-01  0   0.00
2016-01-01  1   -1.09
2016-01-01  2   -2.41
2016-01-01  12  0.00
2016-01-01  13  0.00
2016-01-01  14  0.00
2017-01-01  0   0.00
2017-01-01  1   -5.03
2017-01-01  2   -2.75
2017-01-01  3  4.32
2017-01-01  4  0.00
2017-01-01  5  1.45
... ... ...
2020-12-31  0   27.37
2020-12-31  20  19.69
2020-12-31  21  20.78
2020-12-31  22  27.85
2020-12-31  23  19.68

我知道这可能会惹恼你们,但我真的很感激你们的帮助...

1 个答案:

答案 0 :(得分:2)

你可以使用df.sort_values()

df.sort_values(['Date', 'Hour'], ascending=[True, True])