pandas - 在 Pandas 中将多行转换为列
问题描述
我正在尝试将行转换为熊猫中的列,我的示例数据框看起来像
Scode Pname Town State Cycle Sqty Fqty
6000 Naro Hyd TS Feb/Mar 10 20
6000 Naro Vij TS Apr/May 10 20
6000 Naro Blore KR Feb/Mar 100 200
6000 Naro Cochin KR Apr/May 100 200
我认为它可以与 unstack 多个索引一起使用
df = df.set_index(['State', 'C&F', 'HQ','Sample Code','PName','Cycle']).unstack().T
我的示例输出
TS TS KR KR
Hyd Vij Blore Cochin
Scode Pname Cycle Sqty Fqty Sqty Fqty
6000 Naro Feb/Mar 10 10 100 100
6000 Naro Apr/May 20 20 200 200
任何帮助都感激不尽。谢谢
解决方案
我相信您需要通过所有不是标识符变量的列(如Sqty
和Fqty
列)创建 MultiIndex ,然后创建MultiIndex Series
bystack
并最后重塑 by unstack
:
df = (df.set_index(['Scode', 'Pname', 'Cycle','State','Town'])
.rename_axis('new', axis=1)
.stack()
.unstack(['State','Town','new']))
print (df)
State TS KR
Town Hyd Vij Blore Cochin
new Sqty Fqty Sqty Fqty Sqty Fqty Sqty Fqty
Scode Pname Cycle
6000 Naro Apr/May NaN NaN 10.0 20.0 NaN NaN 100.0 200.0
Feb/Mar 10.0 20.0 NaN NaN 100.0 200.0 NaN NaN
推荐阅读
- javascript - document.querySelector() 可以根据 SRC 文件名(而不是完整的 URL)查找 IMG 元素吗?
- javascript - 如何遍历无线电输入并对每个输入应用更改?
- jenkins - 无法通过 jenkins 在 ec2 amazon linux 实例上的 nightwatch 框架中运行测试用例
- json - 如何从网站中提取特定数据并将其存储到工作表中
- linux - Jmeter数据集配置在Linux服务器中不起作用
- python - 试图将 AWS Transcribe 输出转换为可读格式
- php - php for ctf 中代码行的解释
- sql-server - SQL 服务器错误“将 varchar 值 'False' 转换为数据类型 int 时转换失败”
- javascript - SyntaxError: missing ) 在 Express.js 中带有 jsonwebtoken 的参数列表之后
- python - 为什么要缩进?为什么不用大括号?