您好我有两个数据帧如下所示,并尝试获取结果数据帧,如下所示。
只想比较ID列的数据帧。
id name item price
1 abc pen 10
2 bcd pencil 10
3 cde book 100
4 def stick 50
5 abc pencil 10
id name item price
2 xyz pen 10
50 ahjl phone 1000
1 fff mouse 200
5 ank stamp 20
49 anve cable 2000
结果表
id name item price flag
2 xyz pen 10 yes
5 ank stamp 20 yes
1 fff mouse 200 yes
50 ahjl phone 1000 no
49 anve cable 2000 no
能够使用python pandas实现这一目标。 你可以帮我用pyspark来帮助我。
谢谢,
Ankush Reddy
答案 0 :(得分:1)
假设您的数据框分别称为df1
,df2
:
import pyspark.sql.functions as F
df2.join(
df1.selectExpr("id", "'yes' as flag").dropDuplicates(),
["id"], "left"
).withColumn("flag", F.coalesce(F.col("flag"), F.lit("no"))).show()
+---+-----+----+-----+----+
| id| item|name|price|flag|
+---+-----+----+-----+----+
| 50|phone|ahjl| 1000| no|
| 5|stamp| ank| 20| yes|
| 1|mouse| fff| 200| yes|
| 49|cable|anve| 2000| no|
| 2| pen| xyz| 10| yes|
+---+-----+----+-----+----+
详细说明:
flag
df1
预填充yes
列df2
; null
,并将flag
列中的no
替换为-f
;