我正在处理一个csv文件。源文件的值为'20190801'。对于不同的文件,Pandas将其检测为int
或float
。但是在写入输出之前,我将所有列都转换为字符串,并且数据类型将所有列显示为对象。但是输出末尾包含.0
。为什么会这样?
例如:20190801.0
for col in data.columns:
data[col] = data[col].astype(str)
print(data.dtypes) <-- prints all columns datatypes as object
data.to_csv(neo_path, index=False)
答案 0 :(得分:0)
我这样固定; 我添加了converters参数,并确保所有有问题的列在我的情况下都应保留为字符串。
data = pd.read_csv(filepath, converters={"SiteCode":str,'Date':str,'Tank ID':str,'SIRA RECORD ID':str}
....
data.to_csv(neo_path,index=False)
在这种情况下,我摆脱了,将所有列类型都转换为我的主题所指的字符串。
for col in data.columns:
data[col] = data[col].astype(str)
:将输出写入csv时此方法无效。它将字符串再次转换回浮点数