Python 尝试忽略csv文件中的Nan会引发类型错误

Python 尝试忽略csv文件中的Nan会引发类型错误,python,csv,pandas,numpy,typeerror,Python,Csv,Pandas,Numpy,Typeerror,我正在加载一个包含数据的本地csv文件。我试图找到一行中混合了NaN和数字的最小浮点数。 我尝试使用名为np.nanmin的numpy函数,但它抛出: “TypeError:”尝试将列转换为float显式地揭示了问题,您的“5000+”没有转换为“float64” coun_weight['Launch Mass (Kilograms)'].astype('float64') 结果: ValueError: invalid literal for float(): 5,000+ 我尝

我正在加载一个包含数据的本地csv文件。我试图找到一行中混合了NaN和数字的最小浮点数。
我尝试使用名为np.nanmin的numpy函数,但它抛出:


“TypeError:”尝试将列转换为float显式地揭示了问题,您的“5000+”没有转换为“float64”

coun_weight['Launch Mass (Kilograms)'].astype('float64')
结果:

    ValueError: invalid literal for float(): 5,000+

我尝试测试它,所有有问题的值都是:

coun_weight = pd.read_csv('database.csv')

print (coun_weight.loc[pd.to_numeric(coun_weight['Launch Mass (Kilograms)'], errors='coerce').isnull(), 'Launch Mass (Kilograms)'].dropna())
1091    5,000+
1092    5,000+
1093    5,000+
1094    5,000+
1096    5,000+
Name: Launch Mass (Kilograms), dtype: object
解决办法是:

coun_weight['Launch Mass (Kilograms)'] = 
coun_weight['Launch Mass (Kilograms)'].replace('5,000+', 5000).astype(float)

print (coun_weight['Launch Mass (Kilograms)'].iloc[1091:1098])
1091    5000.0
1092    5000.0
1093    5000.0
1094    5000.0
1095       NaN
1096    5000.0
1097    6500.0
Name: Launch Mass (Kilograms), dtype: float64
然后,如果需要使用
NaN
s-查找最小值,其中跳过
NaN
s:

print (coun_weight['Launch Mass (Kilograms)'].min())
0.0
测试某些
0
是否在列中:

a = coun_weight['Launch Mass (Kilograms)']
print (a[a == 0])
912    0.0
Name: Launch Mass (Kilograms), dtype: float64

另一种可能的解决方案是将此值替换为
NaN
s:

coun_weight['Launch Mass (Kilograms)'] = 
pd.to_numeric(coun_weight['Launch Mass (Kilograms)'], errors='coerce')

print (coun_weight['Launch Mass (Kilograms)'].iloc[1091:1098])
1091       NaN
1092       NaN
1093       NaN
1094       NaN
1095       NaN
1096       NaN
1097    6500.0
Name: Launch Mass (Kilograms), dtype: float64

在CSV FLICAN中,你的CSV文件中有一些空的字段,这些值看起来是空的字段?HES是一个链接到整个CSV文件:空白空间是我的权重内的Na值。例如1390中国Na谢谢帮助!你为我突出了这个问题:
a = coun_weight['Launch Mass (Kilograms)']
print (a[a == 0])
912    0.0
Name: Launch Mass (Kilograms), dtype: float64
coun_weight['Launch Mass (Kilograms)'] = 
pd.to_numeric(coun_weight['Launch Mass (Kilograms)'], errors='coerce')

print (coun_weight['Launch Mass (Kilograms)'].iloc[1091:1098])
1091       NaN
1092       NaN
1093       NaN
1094       NaN
1095       NaN
1096       NaN
1097    6500.0
Name: Launch Mass (Kilograms), dtype: float64