python - 在多索引熊猫数据框中交换两行
问题描述
对于简单的表,如下所示:
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() 调用对以下多级索引表具有相同的效果:
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'],:]
表保持不变。
我可以通过调用以下命令来交换行:
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'],:]
?
解决方案
推荐阅读
- visual-studio-2017 - Where are the Azure Functions Local Host Settings
- c++ - c++如何组成原子操作?
- git - 如何从命令行 GIT REWORD?
- android - Android:如何动态设置 TextView 文本大小,以便文本不会换行到下一行
- docker - 无法在 Jenkins 中运行 Groovy sh 命令
- git - 为什么 TortoiseGit“编辑冲突”将所有行显示为冲突
- excel - 在添加标题时转置表格
- r - R 中的数据整理:格式错误的输入分隔文件,记录分散到多行 [readr]
- java - 为什么可以从类实例调用静态方法
- r - 在 R 中,读取数千个文件并将其组合成数据帧的最快方法是什么?