- 此问题在此处已有答案**:
How can I pivot a dataframe?(5个答案)
4小时前关门了。
各位,我有以下数据:
import pandas as pd
a = [[0, 4, 'a', 1], [0, 4, 'b', 1], [0, 2, 'a', 0.5], [0, 2, 'b', -1], [0, 2, 'c', 1]]
df = pd.DataFrame(a)
df.columns = ['x', 'y', 'features', 'values']
x y features values
0 0 4 a 1.0
1 0 4 b 1.0
2 0 2 a 0.5
3 0 2 b -1.0
4 0 2 c 1.0
我需要一个新的 Dataframe ,如下所示:
b = [[0, 4, 1, 1, 0], [0, 2, 0.5, -1, 1]]
df2 = pd.DataFrame(b)
df2.columns = ['x', 'y', 'a', 'b', 'c']
x y a b c
0 0 4 1.0 1 0
1 0 2 0.5 -1 1
所以我必须使用groupby(['x ','y']),但是我如何继续呢?我希望特征列中的值成为新列,然后我使用'values'列中的值来填充这些列。请帮助我。
2条答案
按热度按时间1l5u6lss1#
使用
DataFrame.pivot_table
或不带
DataFrame.pivot_table
:zazmityj2#
基于
pandas.DataFrame.pivot
的另一种可能的解决方案是:或者,为了更简洁,我们可以使用
janitor.pivot_wider
:输出: