我有一个CSV文件,正在读入熊猫数据框。所有数字都没有小数位,但是一旦我将其读入dframe,它就会在带小数的数字后添加尾随零。
1205变为1205.0
在pd.read_csv期间如何摆脱0?
我知道我可以将.0读入数据帧后将其删除,但我真的不需要它完全不发生。
我尝试过 float_precision ='round_trip'
我试图在read_csv期间强制dtype
我尝试过的一些代码:
df = pd.read_csv('xxx.csv', header=None, dtype={'T': object,'Date': object,'VAL1': float, 'VAL2': float, 'VAL3': float, 'VAL4': float, 'VAL5': float})
OR
df = pd.read_csv('xxx.csv', header=None, float_precision='round_trip')
答案 0 :(得分:1)
您说过您在dtype
期间尝试过强制read_csv
,但是我不明白为什么以下情况不能解决您的问题:
pd.read_csv('xxx.csv', dtype=str)
答案 1 :(得分:1)
读取csv文件:
import pandas as pd
file='cce_classification.csv'
df=csv_into_df(file)
用0填充Nan:
df=df.fillna(0)
获取df列并对其进行迭代。通过使用try块将columntype更改为int:
for column in dfcolumnlist:
try:
df[column]=df[column].astype(int)
except Exception as e:
print(e)
print(df)
最终密码为:
file='cce_classification.csv'
def remove_dot_zeros_from_df(file):
df=pd.read_csv(file)
df=df.fillna(0)
dfcolumnlist=df.columns
for column in dfcolumnlist:
try:
df[column]=df[column].astype(int)
except Exception as e:
print(e)
return df
df=remove_dot_zeros_from_df(file)