我在一个pyspark脚本中加入了这个join。
d = d.join(p, [ d.p_hash == p.hash, d.dy >= p.mindy, d.dy <= p.maxdy, ], "left") \ .drop(p.hash) \ .drop(p.mindy) \ .drop(p.maxdy)
变量'd'和'p'是spark Dataframe 。有没有办法让我在Pandas身上做到这一点?
jjjwad0x1#
是的,您可以简单地进行合并并使用您的条件过滤数据框,然后删除不需要的列。
d = d.merge(p, left_on=['p_hash'], right_on=['hash'], how='left') d = d[(d['dy'] >= d['mindy']) & (d['dy'] <= d['maxdy'])] d = d.drop(['hash', 'mindy', 'maxdy'], axis=1)
pandas上的Merge不太像pyspark,它没有条件连接。您也可以从这里查看答案:How to do/workaround a conditional join in python Pandas?
1条答案
按热度按时间jjjwad0x1#
是的,您可以简单地进行合并并使用您的条件过滤数据框,然后删除不需要的列。
pandas上的Merge不太像pyspark,它没有条件连接。
您也可以从这里查看答案:How to do/workaround a conditional join in python Pandas?