这是我的数据库的简化版本。
A B
Store Product Year
A 1 2014 12 63
2 2015 32 5
3 2016 45 0
B 1 2014 45 0
2 2015 6 19
3 2016 7 4
C 1 2014 98 5
2 2015 54 43
3 2016 28 0
D 1 2014 4 6
2 2015 32 67
3 2016 1 5
我正在尝试选择2016年B列中的值为零的所有商店。所以在这种情况下,我希望选择商店A和C。
df = df[df['B']==0]
仅选择 B = 0 的各个行。而我想要的是选择这个
A B
Store Product Year
A 1 2014 12 63
2 2015 32 5
3 2016 45 0
C 1 2014 98 5
2 2015 54 43
3 2016 28 0
提前感谢帮助或建议。
您可以使用index.get_level_values
创建掩码,然后使用布尔索引:
mask = df[(df.index.get_level_values('Year') == 2016) & (df['B']==0)].index.get_level_values('Store')
df[df.index.get_level_values('Store').isin(mask)]
A B
Store Product Year
A 1 2014 12 63
2 2015 32 5
3 2016 45 0
C 1 2014 98 5
2 2015 54 43
3 2016 28 0
问题内容: 我正在尝试仅使用来自多索引DataFrame的一个索引来创建新的DataFrame。 理想情况下,我想要这样的事情: 和: 本质上,我想删除除level之外的多索引的所有其他索引。是否有捷径可寻? 问题答案: 一种方法是简单地重新绑定到所需的MultiIndex级别。您可以通过指定要保留的标签名称来做到这一点: 或使用级别的整数值: MultiIndex的所有其他级别将在此处消失。
本文向大家介绍计算满足C ++中给定条件的索引对,包括了计算满足C ++中给定条件的索引对的使用技巧和注意事项,需要的朋友参考一下 我们给了前N个自然数的排列数组。这里的目标是找到满足以下条件的元素的索引对- 如果数组是Arr [],则i,j是索引,对元素对进行计数,使Arr [i] + Arr [j] = max(Arr [x])使得i <= x <= j。 即,Arr [i]和A [j]之和等
我需要两种while循环的帮助。
问题内容: 我有以下DataFrame: 如您所见,列用作索引。我想获取该行的序数,在这种情况下应该是。 被测试的列可以是索引列(在这种情况下也可以)或常规列,例如,我可能想找到满足条件的行的索引。 问题答案: 您可以这样使用np.where: 返回的值是一个数组,因为一列中可能有多个具有特定索引或值的行。
我正在尝试从多索引数据帧中仅使用一个索引来创建新的数据帧。 理想情况下,我想要这样的东西: 和: 基本上,我想删除除level之外的多索引的所有其他索引。有没有一个简单的方法可以做到这一点?
我想知道是否可以从一个多索引级别中选择多个项目? 假设我有一个大熊猫数据帧,如下所示: 我想使用dataframe的lvl_2选择特定列 尝试类似< code>df.xs(['c ',' e'],level='lvl_2 ',axis=1)的内容会导致错误: 关键错误:“e”