微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 重塑Pandas DataFrame

我有以下DataFrame

           A
0  2012-01-13 10:00:06
1  2012-01-13 11:09:04
2  2012-01-13 12:07:05
3  2012-01-13 13:03:04
4  2012-01-16 10:00:10
5  2012-01-16 11:09:04
6  2012-01-16 12:01:05
7  2012-01-16 13:09:04
8  2012-01-17 10:01:04
9  2012-01-17 11:05:06
10 2012-01-17 12:01:05
11 2012-01-17 13:04:04

其中索引是0,1,..等

有没有办法根据当天转置数据?例如,新的DataFrame应如下所示:

          A                     B                   C                   D
0   2012-01-13 10:00    2012-01-13 11:09    2012-01-13 12:07    2012-01-13 13:03
1   2012-01-16 10:00    2012-01-16 11:09    2012-01-16 12:01    2012-01-16 13:09
2   2012-01-17 10:01    2012-01-17 11:05    2012-01-17 12:01    2012-01-17 13:04

解决方法:

我认为您需要在dt.day之前创建天数列,然后在cumcount之前创建组,在reset_index之间使用pivot.最后分配新的列名:

#if dtype of column is not datetime
df.A = pd.to_datetime(df.A)

df['day'] = df.A.dt.day
df['groups'] = df.groupby('day').cumcount()

df = df.pivot(index='day', columns='groups', values='A').reset_index(drop=True)
df.columns = list('ABCD')
print (df)
                    A                   B                   C  \
0 2012-01-13 10:00:06 2012-01-13 11:09:04 2012-01-13 12:07:05   
1 2012-01-16 10:00:10 2012-01-16 11:09:04 2012-01-16 12:01:05   
2 2012-01-17 10:01:04 2012-01-17 11:05:06 2012-01-17 12:01:05   

                    D  
0 2012-01-13 13:03:04  
1 2012-01-16 13:09:04  
2 2012-01-17 13:04:04  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐