1
我想转换下面大熊猫据帧大熊猫据帧重塑/枢
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
你知道一个简单的方法?
我想转换下面大熊猫据帧大熊猫据帧重塑/枢
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
伟大的解决方案。谢谢。 – user2725109
我很抱歉,但我看不到这里的模式。结果矩阵的元素究竟与原始元素有什么关系? –
假设'b'栏显示血压读数,'a'栏显示患者ID。我希望将每位患者的所有读数都放在一行中。每个病人可能有1到最大数量的读数,例如10个。因此,最终的病床数量将是number_of_patients x 10。 – user2725109