Python Pandas Multiindexing选择与列表中所有值匹配的行

Joylove

考虑以下数据帧。

import Pandas as pd
df = pd.Dataframe
df = pd.DataFrame()
df['Folder'] = [2,3,4,5  ,2,4,5, 2,3,4, 2,3,4,5,1]
df['Country'] = ['USA','USA','USA','USA'  ,'Mexico','Mexico','Mexico', 'UK','UK','UK', 'Canada','Canada','Canada','Canada','Canada']
df['Data'] = [20,30,43,15  ,25,44,15, 26,37,47, 24,34,47,55,18]
df.set_index(['Country','Folder'], drop=True, inplace=True)
df


                Data
Country Folder      
USA     2         20
        3         30
        4         43
        5         15
Mexico  2         25
        4         44
        5         15
UK      2         26
        3         37
        4         47
Canada  2         24
        3         34
        4         47
        5         55
        1         18

如何收集Folder级别中所有lst = [1,3,4]的行?

                Data
Country Folder      

Canada  2         24
        3         34
        4         47
        5         55
        1         18

或者

                Data
Country Folder      
Canada  3         34
        4         47
        1         18

要么为我工作。我想知道加拿大符合所有第一名。最早可能长达8个项目。

我试过df.query(“ @ lst中的文件夹”),但是返回与lst匹配的行。我需要匹配所有的lst。

在此先感谢您的帮助。

sammywemmy

这是@jezrael的方法的替代方法,在该方法中,我们根据isin和国家对布尔值进行分组

In [38]: (df.groupby([df.index.isin([1,3,4], level='Folder'),
                      df.index.get_level_values('Country')])
            .filter(lambda x: len(x)==3)
           )
Out[38]: 
                Data
Country Folder      
Canada  3         34
        4         47
        1         18

利用以下事实:列表中有三个数字,因此,如果所有数字都匹配,则应为3。

要获取所有值,可以对步骤进行分块:

mapping = df.index.isin([1,3,4], level = 'Folder')

filtered = (pd.Series(mapping)
            .groupby(df.index.get_level_values('Country'))
            .transform(lambda x: sum(x)>=3)
            )

In [61]: df.loc[filtered.array]
Out[61]: 
                Data
Country Folder      
Canada  2         24
        3         34
        4         47
        5         55
        1         18

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python Pandas:检查行中所有列的值是否均为NaN

来自分类Dev

选择3个连续值匹配条件的行-Python,Pandas

来自分类Dev

列,Pandas,Python中所有值的条件字符串操作

来自分类Dev

使用python / pandas格式化数据框中所有行的设备ID

来自分类Dev

基于列值匹配行python pandas

来自分类Dev

根据行值,Python,Pandas选择列

来自分类Dev

Python Pandas查找所有值均为NaN的所有行

来自分类Dev

Python Pandas:如何将数据框中一列中所有字典的值求和?

来自分类Dev

Python、Pandas 和 for 循环:根据与列表值的匹配填充数据帧行

来自分类Dev

在Pandas Dataframe单元中找到[Python列表]的匹配值总和?

来自分类Dev

匹配Python中所有可能的字符

来自分类Dev

如何选择匹配列表中所有值的值?

来自分类Dev

如何比较两列并获取python pandas数据框中两者中所有匹配项的第三列的平均值?

来自分类Dev

Python Pandas为特定行匹配条件设置值

来自分类Dev

python中所有可能的列表合并

来自分类Dev

Python列表中所有元素的类型

来自分类Dev

python中所有可能的列表块

来自分类Dev

根据列值选择所有行pandas

来自分类Dev

根据列值选择所有行pandas

来自分类Dev

Python pandas:如何在符号更改时选择行并具有最小值?

来自分类Dev

Python PANDAS:新建列,将唯一值应用于所有行

来自分类Dev

Python PANDAS:第一次出现列值后删除所有行

来自分类Dev

如何使用Python中的Pandas库减去特定列中的所有行值?

来自分类Dev

Python Pandas 值错误

来自分类Dev

在Pandas DataFrame Python中选择列标签作为行值

来自分类Dev

Python Pandas匹配具有重叠坐标的行

来自分类Dev

Python Pandas - 移动行

来自分类Dev

如果列行中的值为零,则删除pandas数据框中所有列中的所有行

来自分类Dev

将所有值乘以一列python pandas

Related 相关文章

  1. 1

    Python Pandas:检查行中所有列的值是否均为NaN

  2. 2

    选择3个连续值匹配条件的行-Python,Pandas

  3. 3

    列,Pandas,Python中所有值的条件字符串操作

  4. 4

    使用python / pandas格式化数据框中所有行的设备ID

  5. 5

    基于列值匹配行python pandas

  6. 6

    根据行值,Python,Pandas选择列

  7. 7

    Python Pandas查找所有值均为NaN的所有行

  8. 8

    Python Pandas:如何将数据框中一列中所有字典的值求和?

  9. 9

    Python、Pandas 和 for 循环:根据与列表值的匹配填充数据帧行

  10. 10

    在Pandas Dataframe单元中找到[Python列表]的匹配值总和?

  11. 11

    匹配Python中所有可能的字符

  12. 12

    如何选择匹配列表中所有值的值?

  13. 13

    如何比较两列并获取python pandas数据框中两者中所有匹配项的第三列的平均值?

  14. 14

    Python Pandas为特定行匹配条件设置值

  15. 15

    python中所有可能的列表合并

  16. 16

    Python列表中所有元素的类型

  17. 17

    python中所有可能的列表块

  18. 18

    根据列值选择所有行pandas

  19. 19

    根据列值选择所有行pandas

  20. 20

    Python pandas:如何在符号更改时选择行并具有最小值?

  21. 21

    Python PANDAS:新建列,将唯一值应用于所有行

  22. 22

    Python PANDAS:第一次出现列值后删除所有行

  23. 23

    如何使用Python中的Pandas库减去特定列中的所有行值?

  24. 24

    Python Pandas 值错误

  25. 25

    在Pandas DataFrame Python中选择列标签作为行值

  26. 26

    Python Pandas匹配具有重叠坐标的行

  27. 27

    Python Pandas - 移动行

  28. 28

    如果列行中的值为零,则删除pandas数据框中所有列中的所有行

  29. 29

    将所有值乘以一列python pandas

热门标签

归档