[英]Connecting two Columns with list Elements for Pivot in Pandas
我有两列(键,值),我想要 pivot 和 pandas。
导入后,我的数据集如下所示:
工作中心 | 钥匙 | 价值 | |
---|---|---|---|
0 | k1 | 一种, | 1、 |
1个 | k2 | 一个,乙, | 3,5, |
2个 | k1 | c,一个, | 7.5,5, |
我想得到这个:
工作中心 | 钥匙.a | 密钥.b |
---|---|---|
k1 | 总和值 | 求和值 b |
.. | .. | .. |
首先,您可以split
key
和value
列explode
它们分解为行
df_ = (df
.set_index(['Work Center'])
.apply(pd.Series.explode).reset_index()
.replace('', pd.NA)
.dropna(subset=['key'])
)
Work Center key value
0 k1 a 1
2 k2 a 3
3 k2 b 5
5 k1 c 7.5
6 k1 a 5
然后用pivot_table
来pivot吧
df_['value'] = pd.to_numeric(df_['value'])
df_ = (df_
.pivot_table(index='Work Center', columns='key', values='value', aggfunc='sum', fill_value=0)
.add_prefix('key.')
)
print(df_)
key key.a key.b key.c
Work Center
k1 6 0 7.5
k2 3 5 0.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.