Python:如何根据df中其他列的值在df中创建新列

时间:2018-07-10 18:51:09

标签: python pandas

我是编码的新手,所以这可能是一个完全的初学者错误,但是我使用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]

1 个答案:

答案 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