Python Pandas您正在尝试合并一个int和object

fwzugrvs  于 2023-02-14  发布在  Python
关注(0)|答案(2)|浏览(210)
import pandas as pd

df1 = pd.read_csv("koko.csv", sep=";", header=0)

df1['Hour'] = df1['Hour'].astype(str)

df2 = pd.read_csv("wowwo", sep=";", header=0)

df2['Hour'] = df2['Hour'].astype(str)

df3 = df1.join(df2, how='inner', on='Hour')`

当我使用Astype(str)时,我得到以下消息:您正试图合并object列和int64列。
当我使用Astype(int)时,我得到以下消息:以10为基数int()的文本无效:"编号:X253252352552"
我该怎么补救呢?

jgovgodb

jgovgodb1#

来自不同线程的答案:“我也遇到了同样的问题,为什么merge可以处理字符串而join不能,可以在@MatthiasFripp的答案中找到:link。基本上df1.join(df 2)总是通过df 2的索引进行合并,而df1.merge(df 2)将在列上进行合并。因此,基本上我们尝试基于字符串和整数进行合并,即使两列都是字符串”
在我的例子中,两列都是字符串,但是列的内容是字符串和整数的组合,所以这就是为什么它不起作用。

ifmq2ha2

ifmq2ha22#

应该是df1.merge(df2, on='Hour')
“如果要合并的列不在索引中,请使用merge。”

相关问题