【发布时间】:2018-11-26 16:37:01
【问题描述】:
如果我尝试这个(pandas 的两个不同年份,一个在 Python 2 中,另一个在 Python 3 中)
import pandas as pd
x = pd.DataFrame({"id": [1, 2,3], "value1": [5,5,5]})
y = pd.DataFrame({"id": [1], "value2": [10]})
z1 = x.join(y, on = "id")
z2 = x.join(y, on = "id", lsuffix = "_left", rsuffix = "_right")
z3 = x.join(y, lsuffix = "_left", rsuffix = "_right")
第一个连接失败并返回ValueError,第二个没有中断但y 不匹配,只有第三个连接产生预期结果,即y 的行匹配到x .
join 的文档说
on : 名称、元组/名称列表或类似数组 调用者中的列或索引级别名称以加入其他索引, 否则加入 index-on-index。如果给定多个值,则另一个 DataFrame 必须有一个 MultiIndex。如果还没有,可以将数组作为连接键传递 包含在调用 DataFrame 中。类似于 Excel VLOOKUP 操作。
这是一个错误(即z2 会发生什么),还是有某种意义?
【问题讨论】:
-
为什么 1 会失败?