繁体   English   中英

用 Pandas 中 Pivot 的列表元素连接两列

[英]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 keyvalueexplode它们分解为行

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM