python - 如何使用 pandas 将 8760x2 DataFrame 转换为 365x25 DataFrame?
问题描述
我正在尝试转换具有以下数据的 8760x2 pandas DataFrame:
[Datetime]...[Value]
01-01-2019 00:00...1
01-01-2019 01:00...1
etc.
进入 365x25 数据帧:
[Date]...[hour 0]...[hour 1]...until [hour 23]
01-01-2019...1...1...etc.
etc.
我已经做了这个:
Date= pd.DataFrame(df.drop_duplicates(subset='Date'))
Date= pd.DataFrame(Date.Date)
Newdf = pd.DataFrame()
for i in arange(0, 24):
if i == 0:
Newdf.insert(0, "Date", Date['Date'])
Newdf.insert(int(i), "hour "+str(i), NaN*len(Newdf))
我得到的是 NaN 而不是数字。还应该检查日期,因为有时我会遇到闰年和时间变化(夏季,冬季)的问题......
最好的方法是什么?
提前致谢!
解决方案
IIUC,你可以这样做:
df['Datetime'] = pd.to_datetime(df['Datetime'])
df['Date'] = df['Datetime'].dt.date
df['Hour'] = df['Datetime'].dt.hour
df.pivot(index='Date', columns='Hour', values='Value')
推荐阅读
- html - Doxygen @snippet html 样式溢出到下一个标记标签
- wordpress - 我无法在 AWS EC2 上更新 wordpress url 和站点 url
- jquery - 如何修复 Laravel 中的打印页面错误
- python - 如何从二维 Numpy 数组中创建动态饼图?
- java - 如何修复 android.os.NetworkOnMainThread
- ios - 尝试在 iPad 或更小的屏幕上显示时出现自动布局问题
- r - 带有特殊字符的 writeLines 行为
- r - 使用ggplot2根据FIPS代码填写县
- c - 需要帮助解决警告:取消引用类型双关指针会破坏严格的别名规则
- coldfusion - 使用 cfindex 和 cfsearch 在日期范围内建立索引然后搜索