我有10个数据帧,df1...df10
有2列:
df1
id | 2011_result
,
df2
id | 2012_result
,
...
...
df3
id| 2018_result
我想选择一些2011_result
值小于阈值的ID。
sample_ids=df1['2011_result']<threshold].sample(10)['id'].values
此后,我需要从列表的所有其他数据框中选择其他列的值。
类似这样的东西:
df2[df2['id'].isin(sample_ids)]['2012_result']
df3[df3['id'].isin(sample_ids)]['2013_result']
您能帮忙吗?
答案 0 :(得分:1)
首先,您可以使用:
import pyspark.sql.functions as F
sample_ids=df1.filter(F.col("2011_result") < threshold)
然后,您可以使用left_anti
连接过滤掉df2
,df3
等
df2 = df2.join(sample_ids.select("id"), on="id", how="left_anti")