奇怪的问题,以前从来没有遇到过。让pandas frames out of spark清理特定的列,为它的值做好良好的连接准备。
def clean(data):
# manipulate input
return data
x = spark_f1.toPandas()
x["clean_name"] = x["Name"].apply(clean)
x["clean_name"] = x["clean_name"].astype(str)
# do the same for y frame
for c in x.columns:
if c in y.columns:
print(c)
> get "clean_name"
x["clean_name"].dtype == y["clean_name"].dtype
> get True
joined = x.join(y, on="clean_name", how="left", lsuffix="_x", rsuffix="_y")
> You are trying to merge on object and int64 columns.
我错过了什么吗?
1条答案
按热度按时间yhqotfr81#
在这个'for'循环之前,尝试添加以下代码。
如果你想在x和y之间比较列名,建议在比较之前将列名转换为一种通用格式(例如,),以确保不区分大小写的匹配,因为在pandas中列名默认是区分大小写的。
同时,在“y.columns = y.columns.str.lower()“之后添加这些代码,以确保相同的数据类型。