首页 > 解决方案 > 数据框从旧行和旧列转换为具有新列的一行

问题描述

如下数据框,我想将其转换为一行,并从其原始行和列创建新列,

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]

关于如何实现它的任何帮助?谢谢你。

标签: pythonpandasdataframe

解决方案


查看

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]

推荐阅读