使用熊猫阅读CSV时如何删除.0

时间:2019-04-03 19:35:04

标签: pandas csv decimal precision

我有一个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')

2 个答案:

答案 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)