【问题标题】:ValueError: You are trying to merge on object and int64 columns error when joining by cooridnatesValueError:您试图在通过坐标加入时合并对象和 int64 列错误
【发布时间】:2020-07-15 23:25:55
【问题描述】:

我通过公共字段comm 有以下两个数据帧

数据帧 I (vv)

V_Id      object
V_Time    object
comm      object
dtype: object

V_Id    V_Time  comm
0   1234    2020-02-02-10-15-20 (166.0467, 35.2363)
1   1234    2020-02-02-10-15-22 (166.047, 35.2363)
2   1234    2020-02-02-10-15-23 (166.0473, 35.2363)
3   1234    2020-02-02-10-15-25 (166.0475, 35.2363)

DataFrame II (rr)

R_Id    object
comm    object
dtype: object


R_Id    comm
0   One (166.0467, 35.2371)
1   One (166.0468, 35.2371)
2   One (166.0468, 35.2371)

当我运行vv.join(rr, on=['comm']) 时出现以下错误

ValueError: You are trying to merge on object and int64 columns. If you wish to proceed you should use pd.concat

我将如何通过comm 加入/合并?

【问题讨论】:

标签: python pandas


【解决方案1】:

这是SO post的细微变化

vv.join(rr.set_index('comm'), on='comm', how='outer')

我已将 rr 的第一个 comm 值更改为 (166.0467, 35.2363)。所以这两个数据框至少有一个共同点。输出:

        V_Id    V_Time                  comm                    R_Id
0.0     1234.0  2020-02-02-10-15-20     (166.0467, 35.2363)     One
1.0     1234.0  2020-02-02-10-15-22     (166.047, 35.2363)      NaN
2.0     1234.0  2020-02-02-10-15-23     (166.0473, 35.2363)     NaN
3.0     1234.0  2020-02-02-10-15-25     (166.0475, 35.2363)     NaN
NaN     NaN     NaN                     (166.0468, 35.2371)     One
NaN     NaN     NaN                     (166.0468, 35.2371)     One

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多