python - 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
谢谢你的帮助!
解决方案
我会做这样的事情:
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
推荐阅读
- visual-studio-code - Visual Studio Code 无法找到 Git-bash
- python - Openpyxl 将 CSV 中的数字转换为 XLSX 文件中的文本
- html - 在不移动任何其他内容的情况下增长 div
- java - 我的消息未在 BotFramework - Java 中以正确的顺序发送
- python-3.x - 从 Docker 容器中的 Python 文件执行时,子进程找不到文件
- python - 如何用 Django 正确执行这个 ajax 请求?
- regex - 更快的模式匹配 DATES 方法
- python - 尝试接收然后发送数据时的Python SpiDev TypeError
- javascript - 如何将幻灯片选择器点放在图像顶部?
- android - 使用 React Native 共享自定义文件