gpt4 book ai didi

python - 按第 3 级分组和访问列的最有效方法

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:26 24 4
gpt4 key购买 nike

我想要一个具有多索引和多列的 pandas 数据框。我想找到最有效的方法来通过第三个多索引遍历列。我正在考虑取消堆叠,但我无法弄清楚如何通过该索引访问它们。有没有更好的方法(处理速度更快):

df = pandas.DataFrame([{'Index_A':2018,'Index_B':0,'Index_C':101,'Col_D':0.3,'Col_E':.4},{'Index_A':2019,'Index_B':0,'Index_C':101,'Col_D':0.3,'Col_E':.4},{'Index_A':2019,'Index_B':0,'Index_C':102,'Col_D':0.3,'Col_E':.4}])

df = df.set_index(['Index_A','Index_B','Index_C'])
df = df.unstack()

for Index_C in [101,102]:
# get dataframe with index of ['Index_A','Index_B'] and columns ['Col_D,'Col_E']

最佳答案

取每个值的横截面:

for i in df.index.levels[2].unique():
print(df.xs(i, level=2))

或者如果索引中没有第三层并不重要,你可以这样做:

for i, j in df.groupby(level=2).groups.items():
print(df.loc[j])

关于python - 按第 3 级分组和访问列的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50866447/

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