【发布时间】:2021-11-18 01:50:19
【问题描述】:
我正在尝试比较不同数据框中存在的两列的值,以根据条件的匹配创建一个新的数据框:
df1=
| id |
| -- |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
df2 =
| id |
| -- |
| 2 |
| 5 |
| 1 |
所以,当df2的字段存在于df1的字段中时,我想在is_used字段中添加一个'x',否则添加'NA',以生成这样的结果数据框:
df3 =
| id | is_used |
| -- | ------- |
| 1 | X |
| 2 | X |
| 3 | NA |
| 4 | NA |
| 5 | X |
我已经尝试过这种方式,但是选择标准在所有列中都放置了一个“X”:
df3 = df3.withColumn('is_used', F.when(
condition = (F.arrays_overlap(F.array(df1.id), F.array(df2.id))) == False,
value = 'NA'
).otherwise('X'))
如果有任何帮助,我将不胜感激
【问题讨论】:
标签: python dataframe pyspark jupyter-lab