从值不同的两个数据框中获取列

大宫烧

我有两个几乎完全相同的Pyspark数据框:相同的行数和row_id,相同的架构,但每一行的某些列上的值不同。

我想确定每行的列是什么。

例:

数据框A

id  fname   lname   email
1   Michael Jackson [email protected]
2   Roger   Moore   [email protected]
3   Angela  Merkel  [email protected]

数据框B

id  fname   lname   email
1   Michael Jordan  [email protected]
2   Gordon  Moore   [email protected]
3   Angela  Markle  [email protected]

预期的输出是字典列表:

[ 
  {"1": ["lname"]}, 
  {"2": ["fname"] }, 
  {"3": ["lname", "email"] }
]
大宫烧

这是使用RDD转换的更通用的答案:

column_names = a_df.schema.names

def compare(row):
    diff_columns = []
    for col in column_names:
        if row[1][0][col] != row[1][1][col]:
            diff_columns.append(col)

    return ( row[0],  { row[0]: diff_columns } )

# convert to Pair RDD for joining
a_pair_rdd = a_df.rdd.map(lambda x: (x['id'], x))
b_pair_rdd = b_df.rdd.map(lambda y: (y['id'], y))
joined_rdd = a_pair_rdd.join(b_pair_rdd)

output = joined_rdd.map(compare).map(lambda pair: pair[1]).collect()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较两个数据框的列,并使用Pandas返回不同列的值

来自分类Dev

R:根据跨三个不同列的映射值合并两个数据框

来自分类Dev

基于两个不同大小的数据框更新列,并更新第一个数据框中的值。(python中的vlookup的概念)

来自分类Dev

根据值中的逗号将字典的值拆分为两个数据框列

来自分类Dev

使用Pandas比较两个数据框的列值

来自分类Dev

比较两个数据框并替换列值

来自分类Dev

比较布尔值的两个数据框列

来自分类Dev

如何检查两个数据框(熊猫)中多个列的列值?

来自分类Dev

如何比较两个数据框中的日期并更新列中的值

来自分类Dev

从两个数据框中获取通用信息

来自分类Dev

如何比较熊猫中两个数据框的值?

来自分类Dev

验证两个数据框中的值

来自分类Dev

比较python中的两个数据框值

来自分类Dev

比较两个或三个数据框中的列值并合并

来自分类Dev

基于两个数据框中的列进行有条件的值替换

来自分类Dev

两个数据框列中的值计数之间的熊猫累积差异总和

来自分类Dev

支持熊猫中的两个数据框列

来自分类Dev

Python连接两个数据框以查找相同的行值,在相应的行中具有不同的值

来自分类Dev

比较多列以获取两个熊猫数据框中不同的行

来自分类Dev

在两个数据框的列相等的情况下,分配数据框的列值

来自分类Dev

比较两个数据框列

来自分类Dev

如何基于两个不同数据框中的匹配值创建新列?

来自分类Dev

基于第三个数据框中匹配值的具有新布尔值列的两个数据框的乘积

来自分类Dev

使用Full OuterJoin合并两个数据框而未在两个数据框上获取键列

来自分类Dev

从两个数据框中选择并组合 R 中具有不同列和长度的行

来自分类Dev

如何在两个数据框中匹配列值,以及如何使行名与匹配的相应列值匹配

来自分类Dev

在python中合并两个数据框时获取空数据框

来自分类Dev

连接两个数据框,并从数据框中获取带有索引的新框架

来自分类Dev

如何通过匹配熊猫中两个不同数据框中的列来更新一个数据框的列

Related 相关文章

  1. 1

    比较两个数据框的列,并使用Pandas返回不同列的值

  2. 2

    R:根据跨三个不同列的映射值合并两个数据框

  3. 3

    基于两个不同大小的数据框更新列,并更新第一个数据框中的值。(python中的vlookup的概念)

  4. 4

    根据值中的逗号将字典的值拆分为两个数据框列

  5. 5

    使用Pandas比较两个数据框的列值

  6. 6

    比较两个数据框并替换列值

  7. 7

    比较布尔值的两个数据框列

  8. 8

    如何检查两个数据框(熊猫)中多个列的列值?

  9. 9

    如何比较两个数据框中的日期并更新列中的值

  10. 10

    从两个数据框中获取通用信息

  11. 11

    如何比较熊猫中两个数据框的值?

  12. 12

    验证两个数据框中的值

  13. 13

    比较python中的两个数据框值

  14. 14

    比较两个或三个数据框中的列值并合并

  15. 15

    基于两个数据框中的列进行有条件的值替换

  16. 16

    两个数据框列中的值计数之间的熊猫累积差异总和

  17. 17

    支持熊猫中的两个数据框列

  18. 18

    Python连接两个数据框以查找相同的行值,在相应的行中具有不同的值

  19. 19

    比较多列以获取两个熊猫数据框中不同的行

  20. 20

    在两个数据框的列相等的情况下,分配数据框的列值

  21. 21

    比较两个数据框列

  22. 22

    如何基于两个不同数据框中的匹配值创建新列?

  23. 23

    基于第三个数据框中匹配值的具有新布尔值列的两个数据框的乘积

  24. 24

    使用Full OuterJoin合并两个数据框而未在两个数据框上获取键列

  25. 25

    从两个数据框中选择并组合 R 中具有不同列和长度的行

  26. 26

    如何在两个数据框中匹配列值,以及如何使行名与匹配的相应列值匹配

  27. 27

    在python中合并两个数据框时获取空数据框

  28. 28

    连接两个数据框,并从数据框中获取带有索引的新框架

  29. 29

    如何通过匹配熊猫中两个不同数据框中的列来更新一个数据框的列

热门标签

归档