Python Panda数据帧中筛选groupby数据的有效方法
问题 我有两个数据帧Python Panda数据帧中筛选groupby数据的有效方法,python,pandas,bigdata,Python,Pandas,Bigdata,问题 我有两个数据帧帧A(保存一些原始数据)和帧B(保存阈值数据) 我的目标是为帧B中的每个id返回帧A中相应id的行,这些行是使用map s = df_a.id.map(dict(df_b[['id', 'A']].values)) df_a[df_a.A <= s] Out[35]: id A B C D 0 123 2019-09-10 00:00:00 1 True False 1 123 2019-09-
帧A
(保存一些原始数据)和帧B
(保存阈值数据)
我的目标是为帧B
中的每个id返回帧A
中相应id的行,这些行是使用map
s = df_a.id.map(dict(df_b[['id', 'A']].values))
df_a[df_a.A <= s]
Out[35]:
id A B C D
0 123 2019-09-10 00:00:00 1 True False
1 123 2019-09-10 00:10:00 1 True False
3 456 2019-09-05 01:00:00 1 True False
5 789 2019-09-10 10:00:00 1 True False
6 789 2019-09-11 00:50:00 1 True False
7 789 2019-09-12 12:00:00 1 True False
将您的数据放入任何SQL数据库并在其中执行。@AidanGawronski,必须克服基础架构限制和跨团队/环境的复制:)很棒的解决方案,超快速@泰迪:很高兴我能帮忙:)。我还就清晰、详细的信息和样本对你的问题进行了投票。你显然在准备问题上花了很多精力+1.
id A B C D
0 123 2019-09-10 00:00:00 1 True False
1 123 2019-09-10 00:10:00 1 True False
3 456 2019-09-05 01:00:00 1 True False
5 789 2019-09-10 10:00:00 1 True False
6 789 2019-09-11 00:50:00 1 True False
7 789 2019-09-12 12:00:00 1 True False
id A B C D
0 123 2019-09-10 00:00:00 1 True False
1 123 2019-09-10 00:10:00 1 True False
2 123 2019-09-11 00:07:00 1 True False
3 456 2019-09-05 01:00:00 1 True False
4 456 2019-09-08 10:00:00 1 True False
5 789 2019-09-10 10:00:00 1 True False
6 789 2019-09-11 00:50:00 1 True False
7 789 2019-09-12 12:00:00 1 True False
id A B
0 123 2019-09-10 00:10:00 1
1 456 2019-09-05 01:00:00 1
2 789 2019-09-12 12:00:00 1
s = df_a.id.map(dict(df_b[['id', 'A']].values))
df_a[df_a.A <= s]
Out[35]:
id A B C D
0 123 2019-09-10 00:00:00 1 True False
1 123 2019-09-10 00:10:00 1 True False
3 456 2019-09-05 01:00:00 1 True False
5 789 2019-09-10 10:00:00 1 True False
6 789 2019-09-11 00:50:00 1 True False
7 789 2019-09-12 12:00:00 1 True False
(df_a.merge(df_b[['id', 'A']], on='id', how='left', suffixes=('','_y'))
.query('A <= A_y').drop('A_y', 1))
Out[43]:
id A B C D
0 123 2019-09-10 00:00:00 1 True False
1 123 2019-09-10 00:10:00 1 True False
3 456 2019-09-05 01:00:00 1 True False
5 789 2019-09-10 10:00:00 1 True False
6 789 2019-09-11 00:50:00 1 True False
7 789 2019-09-12 12:00:00 1 True False