azu*_*ric 4 python pivot-table pandas
我有以下形式的数据:
'cat' 'value'
a 1
a,b 2
a,b,c 3
b,c 2
b 1
Run Code Online (Sandbox Code Playgroud)
我想使用数据透视表进行转换:
'a' 'b' 'c'
1
2 2
3 3 3
2 2
1
Run Code Online (Sandbox Code Playgroud)
我如何执行此操作。如果我使用 pivot 命令:
df.pivot(columns= 'cat', values = 'value')
Run Code Online (Sandbox Code Playgroud)
这产生了这个结果
'a' 'a,b' 'a,b,c' 'b,c' 'b'
1
2
3
2
1
Run Code Online (Sandbox Code Playgroud)
可以.explode()在将字符串转换为列表后使用,然后正常旋转:
df['cat'] = df['cat'].str.split(',')
df = df.explode('cat').pivot_table(index=df.explode('cat').index,columns='cat',values='value')
Run Code Online (Sandbox Code Playgroud)
这输出:
cat a b c
0 1.0 NaN NaN
1 2.0 2.0 NaN
2 3.0 3.0 3.0
3 NaN 2.0 2.0
4 NaN 1.0 NaN
Run Code Online (Sandbox Code Playgroud)
然后,您可以重置或重命名索引(如果您不希望它被命名)cat。
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |