gpt4 book ai didi

python - Pandas :将多索引级别作为系列

转载 作者:太空狗 更新时间:2023-10-29 18:01:23 24 4
gpt4 key购买 nike

我有一个多层次的数据框,例如:

idx = pd.MultiIndex.from_product((['foo', 'bar'], ['one', 'five', 'three' 'four']),
names=['first', 'second'])
df = pd.DataFrame({'A': [np.nan, 12, np.nan, 11, 16, 12, 11, np.nan]}, index=idx).dropna().astype(int)

A
first second
foo five 12
four 11
bar one 16
five 12
three 11

我想使用标题为 second 的索引级别创建一个新列,以便我得到

              A    B  
first second
foo five 12 five
four 11 four
bar one 16 one
five 12 five
three 11 three

我可以通过重置索引、复制列、然后重新应用来完成此操作,但这似乎更迂回。

我试过 df.index.levels[1],但这会创建一个排序列表,它不会保留顺序。

如果它是单个索引,我会使用 df.index 但在创建一列元组的多重索引中。

如果在其他地方解决了这个问题,请分享,因为我在搜索 stackoverflow 文件时没有任何运气。

最佳答案

df['B'] = df.index.get_level_values(level=1)  # Zero based indexing.
# df['B'] = df.index.get_level_values(level='second') # This also works.
>>> df
A B
first second
foo one 12 one
two 11 two
bar one 16 one
two 12 two
three 11 three

关于python - Pandas :将多索引级别作为系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39045948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com