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
添加回答
舉報