如何在Python中进行行-列转换/数据透视?

如何在Python中进行行-列转换/数据透视?,python,pandas,Python,Pandas,我已经用Python编写了以下代码 import pandas as pd data = {'Mnth':["Jan", "Feb", "Mar", "April","May"], 'Income':["80","90","60", "30", "50"]} df = pd.DataFrame(data) print(df) 结果是 我正在寻找这样一种转变 Jan Feb Mar April May --- --- ---

我已经用Python编写了以下代码

import pandas as pd


data = {'Mnth':["Jan", "Feb", "Mar", "April","May"],         
       'Income':["80","90","60", "30", "50"]} 

df = pd.DataFrame(data) 

print(df)
结果是

我正在寻找这样一种转变

Jan    Feb  Mar  April   May
---    ---  ---  -----   ---- 

80     90   60     30    50
我已尝试使用Pivot函数,如下所示

pivot  =df.pivot(index ='Mnth', columns ='Income') 

print(pivot)
但结果是

Empty DataFrame
Columns: []
Index: [April, Feb, Jan, Mar, May]
方法1:+ 输出

Mnth   Jan Feb Mar April May
Income  80  90  60    30  50
  Jan Feb Mar April May
0  80  90  60    30  50
Mnth    April  Feb  Jan  Mar  May
Income     30   90   80   60   50

您可以使用删除列的名称(
Mnth
)并重置数据帧索引

new_df=df.set_index('Mnth').T.rename_axis(columns=None).reset_index(drop=True)
print(new_df)
输出

Mnth   Jan Feb Mar April May
Income  80  90  60    30  50
  Jan Feb Mar April May
0  80  90  60    30  50
Mnth    April  Feb  Jan  Mar  May
Income     30   90   80   60   50

方法2:
输出

Mnth   Jan Feb Mar April May
Income  80  90  60    30  50
  Jan Feb Mar April May
0  80  90  60    30  50
Mnth    April  Feb  Jan  Mar  May
Income     30   90   80   60   50

pivot\u str类型的表格:

需要更改要添加的默认aggfunc:

new_df=df.pivot_table(columns='Mnth',values='Income',aggfunc=lambda x: ' '.join(x))
print(new_df)

Mnth   April Feb Jan Mar May
Income    30  90  80  60  50

谢谢!!!。只是出于好奇,有没有办法在标题后面划线……请……好吧……请看我在问题中提到的输出……比如在月份名称(一月、二月等)之后,我画了一条下划线——这可能吗?我的意思是,我们有什么选择吗?请…对不起,我不知道如何用熊猫的方法画下划线我在这里什么也没找到:(: