【发布时间】:2020-08-27 06:12:21
【问题描述】:
我正在尝试过滤已由 groupby() 生成的数据框。
分组数据框的示例如下:
all_dists less more
district answer
N yes 9.0 1.0
no 0.0 0.0
maybe 0.0 0.0
W yes 0.0 0.0
no 0.0 0.0
maybe 1.0 6.0
S yes 0.0 0.0
no 0.0 0.0
maybe 0.0 0.0
E yes 0.0 0.0
no 0.0 15.0
maybe 4.5 0.0
如果我过滤“是”和“更少”,我会得到想要的结果:
grouped_df.loc[(slice(None), slice('yes')), 'less']
>>>
all_dists less more
district answer
N yes 9.0 1.0
W yes 0.0 0.0
S yes 0.0 0.0
E yes 0.0 0.0
但如果我过滤“否”或“可能”,那么它将携带前一行:
grouped_df.loc[(slice(None), slice('no')), 'less']
all_dists less more
district answer
N yes 9.0 1.0
no 0.0 0.0
W yes 0.0 0.0
no 0.0 0.0
S yes 0.0 0.0
no 0.0 0.0
E yes 0.0 0.0
no 0.0 15.0
我的目标是计算过滤后的数据帧中的总和,但我似乎无法弄清楚切片有什么问题。
请帮忙^_^
【问题讨论】:
-
你试过不使用
slice函数吗? -
另外,您的任何变量是否定义为
Categorical? -
不,它是
groupby操作的产物。 -
是的,但是您的任何组变量是否定义为
categorical?
标签: python pandas group-by slice