python - 数据框从旧行和旧列转换为具有新列的一行
问题描述
如下数据框,我想将其转换为一行,并从其原始行和列创建新列,
data = {'Contract' : ["Team A", "Team B", "Team C"],
'Revenue': [11,7,10],
'Cost' : [5,2,9],
'Tax' : [4,2,2]}
像:
我试过:
import pandas as pd
df = pd.DataFrame(data)
print (df.values.flatten())
结果并不理想:
['Team A' 5L 11L 4L 'Team B' 2L 7L 2L 'Team C' 9L 10L 2L]
关于如何实现它的任何帮助?谢谢你。
解决方案
查看
s = df.set_index('Contract').stack().to_frame(0).T
s.columns=s.columns.map('_'.join)
s
Team A_Revenue Team A_Cost ... Team C_Cost Team C_Tax
0 11 5 ... 9 2
[1 rows x 9 columns]
推荐阅读
- go - 如何确保按通道生产和消费数据是安全的
- java - Kotlin 等价于 Java `? 扩展`
- r - 在数字和 NA 列表中获取元素权重
- cluster-analysis - 如何在 Sklearn 中使用带有混合(分类和数字)数据的 silhouette_score?
- asp.net-mvc - (MVC) 我的共享 _Layout 中有一个搜索栏。它适用于其他视图,但不适用于 _Layout
- php - return redirect('/') 和 Redirect::to('/')->send() 有什么区别?laravel 中的函数
- snowflake-cloud-data-platform - 用于雪花的 Kafka 连接器不断失败
- node.js - 错误 node_modules/jest-diff/build/diffLines.d.ts(8,13): 错误 TS1005: '=' 预期。在嵌套js中
- amazon-web-services - 如何通过 AutoScaling 动态增加 AWS EMR 上的 ulimit?
- clone - 乐克隆物体没有沉没