Для простой таблицы, такой как:
df = pd.DataFrame([[1,2,3],[4,5,6]], index=['a','b'])
0 1 2
a 1 2 3
b 4 5 6
мы можем поменять две строки 'a' и 'b', вызвав:
df.loc[['b','a'],:]
Out[21]:
0 1 2
b 4 5 6
a 1 2 3
Я ожидал, что loc ()call имеет тот же эффект для следующей многоуровневой индексной таблицы:
df = pd.DataFrame(np.arange(12).reshape((4, 3)),
index=[['a', 'a', 'b', 'b'], [1, 2, 1, 2]],
columns=[['Ohio', 'Ohio', 'Colorado'],
['Green', 'Red', 'Green']])
Ohio Colorado
Green Red Green
a 1 0 1 2
2 3 4 5
b 1 6 7 8
2 9 10 11
, но при запуске:
df.loc[['b','a'],:]
Таблица остается прежней.
Iхотя можно поменять строки, вызвав следующее:
df.reindex(index=['b', 'a'], level=0)
Ohio Colorado
Green Red Green
b 1 6 7 8
2 9 10 11
a 1 0 1 2
2 3 4 5
Что случилось с моим df.loc[['b','a'],:]
?