ValueError:已经使用dropna()后无法将float NaN转换为整数

时间:2018-07-30 23:13:55

标签: python pandas csv

import pandas as pd   
import csv 
import numpy as np

readfile = pd.read_csv('51.csv')
filevalues= readfile.loc[readfile['Customer'].str.contains('Lam Dep', na=False), 'Jul-18\nQty']
filevalues.replace(" ", "")
filevalues = filevalues.replace(r'^\s*$', np.nan, regex=True) 
filevalues.dropna()
int_series = filevalues.astype(int)
calculated_series = int_series.apply(lambda x: x*(1/1.2))

print(calculated_series)

在我的csv文件中,存在带有NaN和空字符串(或者可能是空格)的单元格,我试图摆脱带有空格的单元格并删除NaN值,但是我遇到了错误:

ValueError: cannot convert float NaN to integer

事实证明,我在stackoverflow上发现的其他方法不适用于此代码。关于如何前进的任何想法?这尤其令人困惑,因为我的代码指定先删除NaN,然后​​出现错误状态:无法将float NaN转换为整数

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

filevalues = filevalues.replace(" ", "", regex=True)
filevalues.replace("", np.nan, inplace=True) # replace empty string with np.nan
filevalues.dropna(inplace=True) # drop nan values
int_series = filevalues.astype(int) # change type

calculated_series = int_series.apply(lambda x: x*(1/1.2))

print(calculated_series)