我是编码的新手,所以这可能是一个完全的初学者错误,但是我使用python来分析一些数据。我目前有一个与此类似的数据框:
df = pd.DataFrame({'date' : ['2010-03-04', '2010-04-02', '2010-03-04','2010-04-02','2010-03-04','2010-04-02'],
'A': ['1', '1', '2', '2','3','3'],
'B': ['40', '3', '49', '42','13', '20']})
并显示:
Date A B
0 2010-03-04 1 40
1 2010-04-02 1 3
2 2010-03-04 2 49
3 2010-04-02 2 42
4 2010-03-04 3 13
5 2010-04-02 3 20
但是我想要看起来像这样的东西:
Date A 1 A 2 A 3
0 2010-03-04 40 49 13
1 2010-04-02 3 42 20
我已经尝试过groupby
函数,但是我不确定这是否是我应该做的。的代码是:
gb = df.groupby('A')
[gb.get_group(x) for x in gb.groups]
答案 0 :(得分:0)
您可以使用pivot
和一些重命名:
df_out = df.pivot('date','A','B')
df_out.add_prefix(df_out.columns.name).reset_index().rename_axis([None], axis=1)
输出:
date A1 A2 A3
0 2010-03-04 40 49 13
1 2010-04-02 3 42 20