首页 > 解决方案 > 使用列表选择熊猫数据框的特定行

问题描述

假设我有一个带有人名的简单数据框。我执行groupby一个name

import pandas as pd

df = pd.DataFrame({'col1' : [1,2,3,4,5,6,7], 'name': ['George', 'John', 'Tim', 'Joe', 'Issac', 'George', 'Tim'] })

df1 = df.groupby('name')

问题:在给定这些名称的列表的情况下,如何在 groupby 中选择特定name名称?

例如说我有以下列表

list = ['John', 'Tim', 'George']

尝试:

list
df1 = df[df['name'].isin(list)].groupby('name')

我们如何按名称分组并输出列表中给出名称的条目?这样做的任何替代方法都会有所帮助。例如,可以在 group by 中执行此操作,或者在 group by 执行后提取列表中的值。

标签: pythonpandasdataframe

解决方案


如果您必须在分组后进行过滤 -

for group, group_df in df1:
    if group in ['John', 'Tim', 'George']:
        print(group_df)
#       col1    name
#    0     1  George
#    5     6  George
#       col1  name
#    1     2  John
#       col1 name
#    2     3  Tim
#    6     7  Tim

推荐阅读