首页 > 解决方案 > python pandas 以一天中的小时为单位

问题描述

我正在使用以下数据集,列中每小时计数。数据框有 1400 多列和 100 行。

我的数据集如下所示:

CITY      2019-10-01  00:00     2019-10-01  01:00    2019-10-01  02:00     ....      2019-12-01  12:00

Wien            15                    16                       16          ....              14                                                              
Graz            11                    11                       11          ....              10
Innsbruck       12                    12                       10          ....              12
  ....

如何将此数据时间转换为日期时间,例如:

CITY          2019-10-01         2019-10-02               2019-10-03       ....          2019-12-01 
              (or 1 day)         (or 2 day)               (or 3 day)                     (or 72 day)
Wien            14                    15                      16           ....              12                                                              
Graz            13                    12                      14           ....              10
Innsbruck       13                    12                      12           ....              12
  ....

我希望一天中所有时间的平均值都在一天的列中。数据类型为:

type(df.columns[0])
out: str

type(df.columns[1])
out: pandas._libs.tslibs.timestamps.Timestamp

谢谢你的帮助!

标签: pythonpandasdataframe

解决方案


我会做这样的事情:

days = df.columns[1:].to_series().dt.normalize()
df.set_index('CITY').groupby(days, axis=1).mean()

输出:

           2019-10-01  2019-12-01
CITY                             
Wien        15.666667        14.0
Salzburg    12.000000        14.0
Graz        11.000000        10.0
Innsbruck   11.333333        12.0

推荐阅读