python - 将熊猫专栏/系列变成多个系列
问题描述
我觉得我应该在这里使用 pivot_table,但我似乎无法让它按照我想要的方式工作。这是数据(注意:它是数据的子集):
sample_code analyte abundance_ppm
0 85GMC-RM001 Au 0.000
1 85GMC-RM001 Bi 0.000
2 85GMC-RM001 Ag 0.400
3 85GMC-RM001 Cu 62.000
4 85GMC-RM001 Pb 7.000
5 85GMC-RM001 Zn 84.000
6 85GMC-RM001 Co 20.000
7 85GMC-RM001 Ni 11.000
8 85GMC-RM001 Mo 0.000
9 85GMC-RM001 Mn 585.000
10 85GMC-RM001 Cd 0.000
11 85GMC-RM001 Fe 63300.000
12 85GMC-RM001 Hg 0.575
13 85GMC-RM001 As 0.000
14 85GMC-RM001 Sb 0.000
15 85GMC-RM002 Au 0.000
16 85GMC-RM002 Bi 0.000
17 85GMC-RM002 Ag 0.500
18 85GMC-RM002 Cu 14.000
19 85GMC-RM002 Pb 14.000
我想整理数据,让每个sample_code出现一次,并将分析物特征转化为每个元素的多个特征。我尝试了一个 pivot_table,但它让一切变得非常混乱(我可能做错了)。此数据框中还有其他数据,但对于每个 sample_code 都是唯一的。分析物列是扩展数据框长度的内容。
我昨天在这半天工作,真的需要继续前进。我觉得这比我想象的要简单!
解决方案
更新,
df.pivot_table('abundance_ppm', 'sample_code', 'analyte', aggfunc='sum')
# Pick you're aggfunc. 'sum', 'mean', 'first'.
输出:
analyte sample_code Ag As Au Bi Cd Co Cu Fe Hg Mn Mo Ni Pb Sb Zn
0 85GMC-RM001 0.4 0.0 0.0 0.0 0.0 20.0 62.0 63300.0 0.575 585.0 0.0 11.0 7.0 0.0 84.0
1 85GMC-RM002 0.5 NaN 0.0 0.0 NaN NaN 14.0 NaN NaN NaN NaN NaN 14.0 NaN NaN
IIUC,尝试:
df.pivot('sample_code', 'analyte', 'abundance_ppm').reset_index()
输出:
analyte sample_code Ag As Au Bi Cd Co Cu Fe Hg Mn Mo Ni Pb Sb Zn
0 85GMC-RM001 0.4 0.0 0.0 0.0 0.0 20.0 62.0 63300.0 0.575 585.0 0.0 11.0 7.0 0.0 84.0
1 85GMC-RM002 0.5 NaN 0.0 0.0 NaN NaN 14.0 NaN NaN NaN NaN NaN 14.0 NaN NaN
推荐阅读
- java - 为什么Log4J2在log4j2-test.xml之后就停止了,不再继续寻找log4j2.xml了?
- amazon-s3 - Flink s3 读取错误:读取的数据长度与预期不同
- php - 正则表达式在字符串中的任何位置获取语音标记之间的字符串
- node.js - 在节点 js 中连接一个 postgresql 数据库
- firebase - 在 react 项目中安装本地化版本的 firebaseui
- excel - 如何在我的代码中使用从组合框返回的数据?
- bash - 如果多个程序正在从 FIFO 中读取数据,那么按接收顺序提供哪些保证?
- kubernetes - 用证书加密的 Kubernetes 机密?
- php - Laravel 5.8 - 如何排序(orderBy)多重关系
- c# - Asp.net Jwt 令牌验证