python - 使用列表选择熊猫数据框的特定行
问题描述
假设我有一个带有人名的简单数据框。我执行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 执行后提取列表中的值。
解决方案
如果您必须在分组后进行过滤 -
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
推荐阅读
- python-3.x - Python 3.x:尝试遍历列表中的每个项目,然后计算项目是否在某些时间间隔内减少或增加
- c - 从C中的文件中读取unicode字符
- multithreading - 多线程:chromedriver 不在第二个窗口中打开 url
- c# - 无法加载文件或程序集 'System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 或其依赖项之一
- javascript - 如何在手风琴中打开下一个标签?
- spring-boot - 让 Jackson 在 Spring Boot 中忽略控制器级别的某些字段
- nginx - 本地主机上的 nginx - 通配符域和通配符子域
- c++ - 使用 range-v3 操作基础范围
- azure - Azure RM VM 硬盘
- firebase - 如何使用 Firebase 云功能从 http 请求中获取数据?