首页 > 解决方案 > Python ValueError 如果在不同的笔记本电脑上运行

问题描述

我刚刚构建了一个在我的笔记本电脑上运行良好的功能(Mac,但我正在使用办公室笔记本电脑的 Windows 虚拟机),但是当我将它传递给我的同事时,它会引发 ValueError:

“您正在尝试合并 object 和 int64 列。如果您希望继续,您应该使用 pd.concat”

引发错误的代码行是在我的笔记本电脑上完美运行的简单合并:

df = pd.merge(df1, df2, on = "x", how = "outer)

输入文件完全相同(直接取自同一个远程文件夹)。我完全不知道如何解决这个问题,我不明白为什么在我的笔记本电脑上它可以工作(即使我打开一个新脚本或我重新启动内核,所以周围没有存储变量)并且在我的一个同事没有。

谢谢你的帮助!

标签: pythonpandasmergevalueerror

解决方案


其中一列是对象数据类型,另一列是整数。它们需要具有相同的格式才能合并。尝试添加两行来更改同事计算机上的数据类型。

df2['x'] = df2['x'].astype(str)
df1['x'] = df1['x'].astype(str)
df = pd.merge(df1, df2, on = "x", how = "outer)

由于熊猫版本不同,行为可能会有所不同;或者,excel 文件中可能存在细微差别,您同事计算机上的 excel 文件有一个以不同格式保存的列。


推荐阅读