pandas 数据框重塑/枢轴
pandas dataframe reshape / pivot
我想转换以下 pandas 数据帧
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
你知道一个简单的方法吗?
我会这样做:
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
我想转换以下 pandas 数据帧
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
你知道一个简单的方法吗?
我会这样做:
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