如果列d类型不相同,如何合并列上的两个数据帧?



我有两个数据帧,其中一列名为" US Postal State code ";我试着在那一列上把它们合并成一个新的数据框架。问题是该列在第一个数据框中具有对象dtype,而在第二个数据框中具有int64 dtype。

我尝试使用

将对象dtype的列更改为int64
Enterprise3['US Postal State Code']=Enterprise3['US Postal State Code'].astype(int)

但是我得到了一个错误提示

ValueError: invalid literal for int() with base 10: 'AL'

是否有另一种方法来改变dtypes,使它们匹配并可以合并?

您必须使用自定义函数将其中一列转换为其他数据类型:

def convert_postal(p):
if p == "AL":
return 35045
elif p = "OtherCodes":
return other_codes_numerical_code
Enterprise3["US Postal State Code"] = Enterprise3["US Postal State Code"].map(convert_postal)

在数据框架上使用dtype属性来查看您拥有哪些类型的数据类型。然后将它们强制转换为适当的数据类型。您的计算无法工作,因为您的一些值具有外部数据类型。

最新更新