You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中保留颜色列值存在于另一个DataFrame中的行?

解决Pandas DataFrame基于另一列筛选时数据类型不匹配的问题

你遇到的问题确实是因为两个DataFrame中Color列的数据类型不一致,导致isin()方法无法正确匹配。下面是具体的解决步骤:

1. 先确认两列的数据类型

首先可以用以下代码明确问题所在,查看两列的数据类型:

print("df1.Color的数据类型:", df1.Color.dtype)
print("df2.Color的数据类型:", df2.Color.dtype)

2. 统一两列的数据类型

把df2的Color列转换成和df1一致的字符串类型(str),如果df2中存在额外空格或缺失值,还可以顺便处理:

# 转换为字符串类型并去除可能的首尾空格
df2['Color'] = df2['Color'].astype(str).str.strip()

如果不想修改原始的df2,也可以在筛选时临时转换类型,一步到位:

result_df = df1[df1.Color.isin(df2.Color.astype(str).str.strip())]

3. 执行筛选并验证结果

完成类型统一后,执行你原本的筛选代码就能得到期望的结果:

result_df = df1[df1.Color.isin(df2.Color)]

最终得到的结果如下:

Transport | City | Color
Car | Paris| red
Bike | Paris| red
Car | New York| blue

内容的提问来源于stack exchange,提问作者Nada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 17:14:10