溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

pandas merge報(bào)錯(cuò)怎么辦

發(fā)布時(shí)間:2021-04-07 11:32:18 來(lái)源:億速云 閱讀:376 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下pandas merge報(bào)錯(cuò)怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

pandas 做merge的時(shí)候報(bào)這個(gè)錯(cuò):

df22 = pd.merge(df1,df2,left_on='company_name',right_on = 'name',how='left') Process finished with exit code 137

查了一下原因是:

兩個(gè)表太大了,可能導(dǎo)致內(nèi)存不夠。

補(bǔ)充:Pandas:merge函數(shù)使用注意事項(xiàng)(pandas的merge函數(shù)造成大量錯(cuò)誤的空值)

相信使用過(guò)Pandas的merge函數(shù)的人都知道,merge具有連接的功能,左連接更是在數(shù)據(jù)處理中最常用的連接方式。在使用merge過(guò)程中,

經(jīng)常會(huì)出現(xiàn)這種情況:

dataframe1:
a b
1 1
2 2
3 3
dataframe2:
b c
1 2
2 3

dataframe = pd.merge(dataframe1,dataframe2,on='b',how='left')后得到

dataframe:
a b c
1 1 2
2 2 3
3 3 nan

但有時(shí)候dataframe2為

b c
1 2
2 3
3 4

dataframe = pd.merge(dataframe1,dataframe2,on='b',how='left')后得到

dataframe:
a b c
1 1 2
2 2 3
3 3 nan

這是為什么呢?

原因是通常我們的dataframe的數(shù)據(jù)都是從csv文件或者xls文件讀取過(guò)來(lái)的,在excel中打開對(duì)應(yīng)b那些的數(shù)據(jù)看起來(lái)是一樣的,但是使用pandas讀取的時(shí)候,

可能發(fā)現(xiàn)不同csv文件或者xls文件的同一列的數(shù)據(jù)相同的數(shù)據(jù)具有整型和浮點(diǎn)型的區(qū)別,這樣導(dǎo)致在連接的時(shí)候,3和3.0是不一樣的,無(wú)法對(duì)3那行進(jìn)行連接。

因此,在使用merge進(jìn)行連接前,必須對(duì)連接的關(guān)鍵字進(jìn)行字符化或者整型化的調(diào)整。

以上是“pandas merge報(bào)錯(cuò)怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI