【问题标题】:Cannot join two dataframes in pandas. ValueError: You are trying to merge on object and int64 columns. If you wish to proceed you should use pd.concat无法在 pandas 中加入两个数据框。 ValueError:您正在尝试合并 object 和 int64 列。如果你想继续,你应该使用 pd.concat
【发布时间】:2021-11-19 19:05:20
【问题描述】:

我有两个要加入的数据框

df1.join(df2, how = 'left', on = "foo")

我明白了

ValueError:您正在尝试合并 object 和 int64 列。如果你想继续,你应该使用 pd.concat

但是,foo 两列的类型都是 object

print(df1.dtypes)

这给了我

foo         object
geometry    geometry
dtype: object

查看df2dtypes

print(df2.dtypes)

这给了我

foo         object
bar         object
num         int64
dtype: object

foo 位于dataframe 类型object 中。甚至一个

df1.dtypes["foo"] == df2.dtypes["foo"]

返回一个True

为什么我会收到此错误消息?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    df1.join(df2, on='foo') 尝试将 df1['foo'] 加入到 df2 的 index(可能是 int64)。要合并列上的两个数据框,请使用 pd.merge

    【讨论】:

    • 那我如何加入一个共同的列名?
    • 是的,应该可以,你能找到两者都出现的键并检查值是什么 df.loc['key', 'foo'] 吗?我想知道是否可能存在空格或使它们看起来相同但比较不相等的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2020-01-07
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多