我遇到了一个熊猫问题,我有点困惑。我有一个文件有很多不需要计算的数值。他们中的大多数都出来很好,但我有一对夫妇得到“.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