我正在编辑这个问题我不想使用groupby来使用组值。
如果有人能帮助您通过以下方式进行数据转换,我将不胜感激:
我有一个数据帧如下:
df1:
col1 col2
------------
VG 12
G 11
A 10
P 06
VP 0
我想要新的数据帧,例如:
df2:
VG G A P VP
---------------------
12 11 10 06 0
我尝试使用if条件实现此目标,但出现以下错误:
代码:
if df1.Score=='VG':
df2['VG']=df1.loc[df1['col1'] == 'VG', 'col2']
The truth value of a Series is ambiguous. Use a.empty, a.bool(),
a.item(), a.any() or a.all()
最佳答案
agg
和transform
将起作用:)
df.groupby('col1').agg(list).col2.transform(pd.Series).T.fillna(0)
A G P VG VP
0 10.0 11.0 6.0 12.0 0.0
1 50.0 0.0 0.0 53.0 0.0