Python 将具有多级索引的数据帧值转换为单列

Python 将具有多级索引的数据帧值转换为单列,python,dataframe,Python,Dataframe,我想请教你的意见 如何将第一个数据帧转换为下面的第二个数据帧 大陆、国家和位置是列索引的名称 pollution_level将被添加为第一个数据帧上存在的值的列名 Continent Asia Asia Africa Europe Country Japan China Mozambique Portugal Location Tokyo Shanghai Maput

我想请教你的意见

如何将第一个数据帧转换为下面的第二个数据帧

大陆、国家和位置是列索引的名称

pollution_level将被添加为第一个数据帧上存在的值的列名


     Continent     Asia     Asia        Africa       Europe
       Country     Japan    China       Mozambique   Portugal
      Location     Tokyo    Shanghai    Maputo       Lisbon
Date  
01 Jan 20          250      435         45           137
02 Jan 20          252      457         43           144
03 Jan 20          253      463         42           138


谢谢。

以下内容应满足您的要求

模块

import io
import pandas as pd
创建数据

df = pd.read_csv(io.StringIO("""
      Continent     Asia     Asia        Africa       Europe
      Country     Japan    China       Mozambique   Portugal
      Location     Tokyo    Shanghai    Maputo       Lisbon
Date
01 Jan 20          250      435         45           137
02 Jan 20          252      457         43           144
03 Jan 20          253      463         42           138
"""), sep="\s\s+", engine="python", header=[0,1,2], index_col=[0])
验证多索引

df.columns

MultiIndex([(  'Asia',      'Japan',    'Tokyo'),
        (  'Asia',      'China', 'Shanghai'),
        ('Africa', 'Mozambique',   'Maputo'),
        ('Europe',   'Portugal',   'Lisbon')],
       names=['Continent', 'Country', 'Location'])
转置表和堆栈值

ndf = df.T.stack().reset_index()
ndf.rename({0:'Polution_Level'}, axis=1)

ndf = df.T.stack().reset_index()
ndf.rename({0:'Polution_Level'}, axis=1)