如何使用熊猫将8760x2数据帧转换为365x25数据帧?

时间:2019-09-17 15:04:50

标签: python pandas dataframe

我正在尝试转换一个具有以下数据的8760x2熊猫数据框:

 [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而不是数字。还应该检查日期,因为有时我会遇到a年和时间更改(夏季,冬季)的问题...

执行此操作的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

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')