看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)有以下 DataFrame,需要筛选一个用户在多个机构的数据,并且这个数据中的每个机构至少有两个用户(最终结果数据可参考参考答案的数据)。
import pandas as pd
import io
data = '''
序号 机构名称 姓名 用户ID 日期
1 A 陈1 Z001 2024/2/3
2 A 陈2 Z002 2024/2/4
3 A 黄6 Z003 2024/2/5
4 A 陈9 Z009 2024/2/5
5 A 黄7 Z004 2024/2/6
6 A 陈5 Z005 2024/2/7
7 A 陈6 Z006 2024/2/8
8 A 陈7 Z007 2024/2/9
9 A 陈8 Z008 2024/2/10
10 B 李4 Z010 2024/2/20
11 B 赵8 Z011 2024/2/21
12 B 黄6 Z003 2024/6/22
13 B 陈9 Z009 2024/6/22
14 B 钱6 Z014 2024/2/24
15 B 孙5 Z015 2024/2/25
16 B 孙6 Z016 2024/2/25
17 B 孙7 Z017 2024/2/25
18 C 王5 Z017 2024/2/7
19 C 王6 Z018 2024/2/8
20 C 王7 Z019 2024/2/9
21 C 王8 Z020 2024/2/10
22 C 黄6 Z021 2024/2/11
23 D 孙5 Z015 2024/7/12
24 D 孙6 Z016 2024/7/12
25 D 孙7 Z017 2024/7/12
'''
df = pd.read_csv(io.StringIO(data), sep=r'\s+')
df
# ...
Python 代码如下:
(
df.groupby('姓名').filter(lambda x: x.机构名称.nunique()>1)
.groupby('机构名称').filter(lambda x: len(x)>1)
)
'''
序号 机构名称 姓名 用户ID 日期
3 A 黄6 Z003 2024/2/5
4 A 陈9 Z009 2024/2/5
12 B 黄6 Z003 2024/6/22
13 B 陈9 Z009 2024/6/22
15 B 孙5 Z015 2024/2/25
16 B 孙6 Z016 2024/2/25
17 B 孙7 Z017 2024/2/25
23 D 孙5 Z015 2024/7/12
24 D 孙6 Z016 2024/7/12
25 D 孙7 Z017 2024/7/12
'''
查看相关链接中的知识。
(完)
更新时间:2024-09-18 21:02:29 标签:pandas python 筛选 分组