假设我有一个简单的数据帧,如下所示:
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