比较两个DataFrame的列值

mnemlml8  于 2022-11-08  发布在  PyCharm
关注(0)|答案(1)|浏览(139)

我是Python的新手,我看到有人比较两个不同DF的列,就像这样,但我得到了以下错误:
错误:只能比较标签相同的系列对象
我的代码:

df1["PC"] = np.where(np.logical_and(df1["MPG"].isnull(),df1["MC"] == df2["MC"]),
                                              df2["PC"],'Unassigned')

为了解释这个代码片段,我尝试更新DF 1中的PC列,其中MPG列为空,并且df 1 [MC] == df 2 [MC],如果条件匹配,则使用DF 2中的值更新DF 1中的PC列。
设计文件2:
| 个人电脑|管理中心|
| - -|- -|
| 个人电脑1|微通道1|
| 个人电脑2|微通道2|
| PC 3计算机|MC 3型|
| 个人电脑4| MC 4型|
设计文件1:
| 个人电脑|英里/加仑|管理中心|
| - -|- -|- -|
| 个人电脑2| MPG 2型|微通道2|
| | | 微通道1|
| 个人电脑1| MPG1|微通道1|
| | | MC 3型|
上述代码的预期结果:
设计文件1:
| 个人电脑|英里/加仑|管理中心|
| - -|- -|- -|
| 个人电脑2| MPG 2型|微通道2|
| 个人电脑1||微通道1|
| 个人电脑1| MPG1|微通道1|
| PC 3计算机||MC 3型|
如果您有任何问题,请告诉我。
编辑:我的df 1有很多列,我没有在这里显示。我特别想更新PC列只。
谢谢你,
瓦利德

2g32fytz

2g32fytz1#

请尝试:

print(df1[df1["PC"].isin(df2["PC"])])

这将检查df1中的列PC的值是否存在于df2中,并相应地合并它们。

相关问题