快速演示:
import numpy as np
import pandas as pd
from itertools import product
np.random.seed(1)
team_names = ['Yankees', 'Mets', 'Dodgers']
jersey_numbers = [35, 71, 84]
game_numbers = [1, 2]
observer_names = ['Bill', 'John', 'Ralph']
observation_types = ['Speed', 'Strength']
row_indices_1 = list(product(team_names, jersey_numbers, game_numbers, observer_names, observation_types))
observation_values_1 = np.random.randn(len(row_indices_1))
tns_1, jns_1, gns_1, ons_1, ots_1 = zip(*row_indices_1)
data_1 = pd.DataFrame({
'team': tns_1,
'jersey': jns_1,
'game': gns_1,
'observer': ons_1,
'obstype': ots_1,
'value': observation_values_1
})
data_1 = data_1.set_index(['team', 'jersey', 'game', 'observer', 'obstype'])
data_1 = data_1.unstack(['observer', 'obstype'])
data_1.columns = data_1.columns.droplevel(0)
row_indices_2 = list(product(team_names, jersey_numbers))
observation_values_2 = np.random.randn(len(row_indices_2))
tns_2, jns_2, = zip(*row_indices_2)
data_2 = pd.DataFrame({'team': tns_2, 'jersey': jns_2, 'value': observation_values_2})
data_2 = data_2.set_index(['team', 'jersey'])
data_1
是一个很大的“ol”,行上有3级多索引,列上有2级多索引。data_2
是一个“lil-guy”,行上有两级多索引,只有一列数据。在
奇怪的行为如下:
^{pr2}$这使我返回data_1
,行顺序颠倒。伟大的。但当我随后展示data_1
时,我希望它能保持翻转状态(洋基第一,道奇最后)。但这是不对的。data_1
本身似乎不受上述命令的影响。在
但是,当调用data_2
时,行为是不同的。呼叫:
根据需要显示data_2
的翻转版本。随后打给data_2
的电话显示翻转的顺序(扬基队第一,道奇队最后)。与data_1
的情况完全相反。在
这是怎么回事?为什么索引翻转对data_2
起作用而对data_1
不起作用?在
目前没有回答
相关问题 更多 >
编程相关推荐