我遇到了一個熊貓問題,我有點困惑。我有一個文件有很多不需要計算的數值。他們中的大多數都出來很好,但我有一對夫婦得到「.0」結尾。大熊貓追加.0至數字
下面是一個示例輸入文件:
Id1 Id2 Age Id3
"SN19602","1013743", "24", "23523"
"SN20077","2567897", "28", "24687"
而正在生成的輸出:
Id1 Id2 Age Id3
"SN19602","1013743.0", "24", "23523"
"SN20077","2567897.0", "28", "24687"
任何人都可以解釋爲什麼一些但不是所有的數值越來越.0追加,如果有什麼辦法可以阻止它?當我使用CSV輸出執行我的過程的下一步時,這是一個問題。
我試圖將數據框和列本身轉換爲字符串,但它沒有產生影響。理想情況下,我不希望列出每列進行轉換,因爲列數量非常大,並且手動必須通過輸出文件來確定哪些列將附加.0併爲其編碼。任何建議感激。
import pandas as pd
import csv
df_inputFile = pd.read_csv("InputFile.csv")
df_mappingFile = pd.read_csv("MappingFile.csv")
df_merged = df_inputFile.merge(df_mappingFile, left_on="Id", right_on="Id", how="left")
#This isn't affecting the output
df_merged.astype(str)
df_merged.to_csv("Output.csv", index=False, quoting=csv.QUOTE_ALL)
您是否有缺失的值?如果是這樣的話,該列的dtype現在可能是一個float64來處理'NaN'值,請'df輸出。info()'你也可以測試那個列的空值'np.any(df ['Id2']。isnull())' – EdChum 2015-04-01 15:40:54
Hi @EdChum - 是的,我確實有NaN值,這是一個有效的場景。那些應該保持NaN。謝謝 – EMC 2015-04-01 16:01:03