gpt4 book ai didi

python - iloc'ing 多索引的一级

转载 作者:行者123 更新时间:2023-12-01 07:48:32 25 4
gpt4 key购买 nike

我有多索引数据框,例如:

df = pd.DataFrame(index = pd.MultiIndex.from_product([['mike', 'matt', 'dave', 'frank', 'larry'], range(10)]))
df['foo']="bar"
df.index.names=['people', 'socket']

我想做的是 iloc-slice 与索引中前三个人相关的所有行。 IE:检索 peoplematt mikedave 的所有行。

As far as I can tell不过,pandas 根本不支持这一点。看到了一些与关卡相关的粗暴黑客行为,但它们根本不起作用。 get_level_values(0) 不会给出不同的级别值,并且 levels() 返回未排序的frozenset

编辑:我应该说基于 .loc 的解决方案对我不起作用。

最佳答案

给你:

df = pd.DataFrame(index = pd.MultiIndex.from_product([['mike', 'matt', 'dave', 'frank', 'larry'], range(10)], names=['people', 'socket']))
df['foo']="bar"
df.index.names=['people', 'socket']
# get rows
select_rows = df.loc[['mike', 'matt', 'dave']]

输出:

people socket     
mike 0 bar
1 bar
2 bar
3 bar
4 bar
5 bar
6 bar
7 bar
8 bar
9 bar
matt 0 bar
1 bar
2 bar
3 bar
4 bar
5 bar
6 bar
7 bar
8 bar
9 bar
dave 0 bar
1 bar
2 bar
3 bar
4 bar
5 bar
6 bar
7 bar
8 bar
9 bar

关于python - iloc'ing 多索引的一级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56340906/

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