如何切换熊猫数据帧上外部索引的顺序



假设我有一个简单的数据帧,如下所示:

data = {"Weekday": ["Sun", "Sun", "Mon", "Mon"], "city": ["Austin", "Dallas", "Austin", "Dallas"], "visitors": [139, 237, 326,456], "signups": [7,12,3,5]}
df = pd.DataFrame(data)

具有多级索引

df.set_index(["Weekday", "city"], inplace=True)


visitors  signups
Weekday city                     
Sun     Austin       139        7
Dallas       237       12
Mon     Austin       326        3
Dallas       456        5

在堆叠和拆垛、玩它、交换关卡和重新索引之后,我最终得到了这个:


Weekday city                     
Mon     Austin       326        3
Dallas       456        5
Sun     Austin       139        7
Dallas       237       12

如何将外部索引切换回原来的索引?

找不到一个简单的即时方法。

我得到的最接近的是

df = df.iloc[::-1]

它颠倒了内在和外在,这不是我想要的。我只想换一下外层。

我也尝试过以下几种:

提前谢谢。

一种方法是将"原始"索引存储在变量中,然后重新为数据帧编制索引。

data = {"Weekday": ["Sun", "Sun", "Mon", "Mon"], "city": ["Austin", "Dallas", "Austin", "Dallas"], "visitors": [139, 237, 326,456], "signups": [7,12,3,5]}
df = pd.DataFrame(data)
df = df.set_index(["Weekday", "city"])
print('Original Dataframe')
print(df)
print('n')
idx = df.index
df = df.stack().unstack()
print('Played with dataframe')
print(df)
print('n')
df = df.reindex(idx)
print('Reindexed Dataframe')
print(df)

输出:

Original Dataframe
visitors  signups
Weekday city                     
Sun     Austin       139        7
Dallas       237       12
Mon     Austin       326        3
Dallas       456        5

Played with dataframe
visitors  signups
Weekday city                     
Mon     Austin       326        3
Dallas       456        5
Sun     Austin       139        7
Dallas       237       12

Reindexed Dataframe
visitors  signups
Weekday city                     
Sun     Austin       139        7
Dallas       237       12
Mon     Austin       326        3
Dallas       456        5

最新更新