我有一个大熊猫系列,每小时观察一个指标。我想把它变成一个系列,每天观察每天观察行有24小时列。
举个例子,我想转换
value
2018-05-12 12:00 45
2018-05-12 13:00 46
2018-05-12 14:00 47
到
value_12 value_13 value_14
2018-05-12 45 46 47
有没有一种简单的方法可以在pandas中使用内置方法实现这一目标?
答案 0 :(得分:3)
假设您从
开始df = pd.DataFrame({'value': [45, 46, 47]}, index=['2018-05-12 12:00', '2018-05-12 13:00', '2018-05-12 14:00'])
然后你可以提取日期和时间:
df['date'] = pd.to_datetime(df.index).date
df['hour'] = pd.to_datetime(df.index).hour
现在只按日期分组,并创建一个系列:
>>> df.groupby([df.date]).apply(lambda g: pd.Series(g.value.values, index='value_' + g.hour.astype(str)))
hour value_12 value_13 value_14
date
2018-05-12 45 46 47