如何根据另一个数据框更改数据框的元素?

Posted

技术标签:

【中文标题】如何根据另一个数据框更改数据框的元素?【英文标题】:how to change elements of a data frame based on another dataframe? 【发布时间】:2021-01-31 00:24:06 【问题描述】:

我有一个大数据df。我还有另一个 csv 文件 dgdg 数据框是由 df 通过以下代码生成的:

dg=df.groupBy('title).count().orderBy('count')

我在dg 上附加了一个新列,名为new。我想创建一个新列并遍历df 的所有行,如果df 中的title 等于dg 中的title,则将其更改为new。例如假设:

title  
summer
apple
hi
hi
apple


title    new
summer   AH
apple    now
hi       good

输出:

 title  new 
summer  AH
apple   now
hi      good
hi      good
apple   now

【问题讨论】:

不完全确定您要达到的目标,并且您包含的示例不清楚(例如,您写道您的 dg 中有计数,但没有一个示例包含数字) ,但是您在寻找pandas.merge() 吗?您可以在那里指定inner 加入。还是您的大数据太大而无法使用pandas 它有数百万行,太大了 【参考方案1】:

left join 应该可以。

df.join(dg, ['title'], "left").show()

+------+----+
| title| new|
+------+----+
|summer|  AH|
| apple| now|
|    hi|good|
|    hi|good|
| apple| now|
+------+----+

【讨论】:

它不是熊猫数据框 使用distinct() 删除重复项:df.join(dg, ['title'],"left").distinct().show()。上面的解决方案适用于您发布的内容。如果您仍有问题,请使用清晰的示例更新问题。

以上是关于如何根据另一个数据框更改数据框的元素?的主要内容,如果未能解决你的问题,请参考以下文章

js如何根据下拉框的每个选项,限制另一个复选框小组的选择个数

如何根据 PySpark 数据框的另一列中的值修改列? F.当边缘情况

如何使用组合框根据另一个组合框的值从不同的表中选择数据

使用源代码管理更改文本框的内容

如何根据共同日期在单个数据框中对齐两个数据框的数据[重复]

如何根据从其他框中选择的文本更改动态创建的组合框的显示项