pandas dataframe reshape / pivot

时间:2016-11-23 23:17:35

标签: python pandas dataframe pivot reshape

我想转换以下pandas dataframe

    a   b
0   1   2
1   1   5
2   2   4
3   1   3
4   3   7
5   2   1

    0   1   2
a           
1   2   5   3  
2   4   1   NaN
3   7   NaN NaN

你知道一个简单的方法吗?

1 个答案:

答案 0 :(得分:1)

我会这样做:

In [11]: df.groupby("a")["b"].apply(lambda x: pd.Series(x.values))
Out[11]:
a
1  0    2
   1    5
   2    3
2  0    4
   1    1
3  0    7
Name: b, dtype: int64

获取您想要的表格,然后取消堆叠(尽管可能更好):

In [22]: df.groupby('a')["b"].apply(lambda x: pd.Series(x.values)).unstack(1)
Out[22]:
     0    1    2
a
1  2.0  5.0  3.0
2  4.0  1.0  NaN
3  7.0  NaN  NaN