【发布时间】:2020-05-13 23:03:34
【问题描述】:
以下代码创建了相关的 Pandas DataFrame:
import pandas as pd
columns_index = pd.MultiIndex.from_arrays([['Apple','Apple','Banana'], ['Light_Green','Red','Yellow']])
df = pd.DataFrame(data=None,columns=columns_index,index=[1])
df.loc[:,('Apple','Light_Green')] = 10
df.loc[:,('Apple','Red')] = 0
df.loc[:,('Banana','Yellow')] = 5
Apple Banana
Light Green Red Yellow
1 10 0 5
然后我运行以下代码来插入一个新值(以及一个新的第一级列标题到 DataFrame):
df.loc[:,('Apple','Dark_Green')] = 1
然而,这会产生一个 DataFrame,其中的数据排序如下:
Apple Banana Apple
Light_Green Red Yellow Dark_Green
1 10 0 5 1.0
如何以最 Pythonic 的方式将此值(和新的第一级列标题)插入 DataFrame 并确保 Dark_Green 标题在 Apple 类别内,以便 DataFrame 如下:
Apple Banana
Light_Green Red Dark_Green Yellow
1 10 0 1 5
是否有不同的方法用于插入数据,或者这种方法是否可行,部署了某种代码以在最佳方法之后重新排序 DataFrame?
注意:我特别需要反复动态调整 DataFrame,因此从一开始就使用 Dark_Green 标头创建 DataFrame 不是解决方案。
谢谢!
【问题讨论】:
标签: python-3.x pandas dataframe multi-index