1 回答
TA贡献1828条经验 获得超13个赞
就像@ayhan 评论的那样,aDataFrame 中的问题是列latitude和longitude列中的数字之间的字符串,因此所有列都被转换为字符串。
在另一个 DataFrame 中,默认情况下将列转换为floats。
一种可能的解决方案是使用DataFrame 的dtype参数b:
b = pd.read_csv('../test1.csv', escapechar='\\', dtype={'latitude':str, 'longitude':str})
df = pd.concat([a,b]).drop_duplicates(keep=False)
print (df)
sale_date price latitude longitude
0 Wed May 21 00:00:00 EDT 2008 141000 38.423251 -121.444489
2 Wed May 21 00:00:00 EDT 2008 147308 38.658246a -121.375469a
或to_numeric用于 中的列a:
a['latitude'] = pd.to_numeric(a['latitude'], errors='ignore')
a['longitude'] = pd.to_numeric(a['longitude'], errors='ignore')
df = pd.concat([a,b]).drop_duplicates(keep=False)
print (df)
sale_date price latitude longitude
0 Wed May 21 00:00:00 EDT 2008 141000 38.423251 -121.444489
2 Wed May 21 00:00:00 EDT 2008 147308 38.658246a -121.375469a
添加回答
举报
