我是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列只。
谢谢你,
瓦利德
1条答案
按热度按时间2g32fytz1#
请尝试:
这将检查
df1
中的列PC
的值是否存在于df2
中,并相应地合并它们。