python - Python ValueError 如果在不同的笔记本电脑上运行
问题描述
我刚刚构建了一个在我的笔记本电脑上运行良好的功能(Mac,但我正在使用办公室笔记本电脑的 Windows 虚拟机),但是当我将它传递给我的同事时,它会引发 ValueError:
“您正在尝试合并 object 和 int64 列。如果您希望继续,您应该使用 pd.concat”
引发错误的代码行是在我的笔记本电脑上完美运行的简单合并:
df = pd.merge(df1, df2, on = "x", how = "outer)
输入文件完全相同(直接取自同一个远程文件夹)。我完全不知道如何解决这个问题,我不明白为什么在我的笔记本电脑上它可以工作(即使我打开一个新脚本或我重新启动内核,所以周围没有存储变量)并且在我的一个同事没有。
谢谢你的帮助!
解决方案
其中一列是对象数据类型,另一列是整数。它们需要具有相同的格式才能合并。尝试添加两行来更改同事计算机上的数据类型。
df2['x'] = df2['x'].astype(str)
df1['x'] = df1['x'].astype(str)
df = pd.merge(df1, df2, on = "x", how = "outer)
由于熊猫版本不同,行为可能会有所不同;或者,excel 文件中可能存在细微差别,您同事计算机上的 excel 文件有一个以不同格式保存的列。
推荐阅读
- redirect - 显示从旧域重定向到新域的弹出窗口
- sql-server - SQL Server 插入语句部分插入数据。并非所有给定数据都被插入
- javascript - Why is this decoding/encoding process giving a different buffer array?
- websocket - 你能提供关于websocket的信息吗
- java - Caused by: org.h2.jdbc.JdbcSQLDataException: Hexadecimal string contains non-hex character
- c# - How to output all class objects in console?
- php - 正则表达式仅匹配全套两部分模式(有点非贪婪)
- python - Python Dataframe 中的多个 If 语句
- node.js - 如何使用 Node.js 在 Express.js 中为同一查询返回不同的结果?
- react-native - (0, _reactI18next.translate) 不是函数