2016-09-23 127 views
0

我正在使用熊貓並導入了兩個csv。熊貓to_csv導出在數據框中給出錯誤的值

DF1是

enter image description here

DF2是

enter image description here

DF2的數據類型是

enter image description here

當我在做在DF1和DF2一些操作:

df3= pd.merge(df1, df2, how='left', on=['Origin City Code', 'DC']) 

,然後將其導出到csv

df3.to_csv("test.CSV") 

那麼所有的值的下欄「量」的總和與值的總和下的列不匹配原來的df2。事實上,df3的總和現在會更多。我相信由於浮點數的緣故,問題即將出現。但是有什麼辦法可以解決嗎?我已經通過以下鏈接,但我的問題仍未得到答覆。

https://github.com/pydata/pandas/issues/2069

float64 with pandas to_csv

reading and writing csv in pandas changes cell values

Wrong decimal calculations with pandas

下面是代碼的文件我使用:https://www.dropbox.com/s/kjpnhl7qtojes92/sample.rar?dl=0

+3

你有重複的'['出發城市代碼','DC']'df1'中的行?這會導致在合併的DataFrame中存在重複的卷,解釋更大的總和。 – root

+0

@root ..在df1中沒有重複的值。我檢查了 – Ajeet

+2

我並不是說整個重複,只是在'['Origin City Code','DC']'子集,即'df.duplicated(subset = ['Origin City Code','DC']] ).ANY()'。總和是多少?你能提供一個可重複的例子嗎?我無法重現您顯示的數據的錯誤。 – root

回答

1

我看着你的文件,@root上面說,在df1中的組合爲Origin City CodeDC不是唯一的。例如,有兩個記錄Origin City Code = GGN和DC = ASA。

如果你想看看你可以運行下面的代碼:

df1[df1.duplicated(subset=['Origin City Code', 'DC'], keep=False)].sort_values(['Origin City Code', 'DC']) 

下面是該輸出的頭:

enter image description here

+0

好的答案。這是@root,他談論的是非唯一性,但不是我。 (儘管我同意根,這似乎至少是問題的一部分。) –