如何根据另一个数据框更改数据框的元素?
Posted
技术标签:
【中文标题】如何根据另一个数据框更改数据框的元素?【英文标题】:how to change elements of a data frame based on another dataframe? 【发布时间】:2021-01-31 00:24:06 【问题描述】:我有一个大数据df
。我还有另一个 csv 文件 dg
。 dg
数据框是由 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如何根据下拉框的每个选项,限制另一个复选框小组的选择个数