Python 尝试忽略csv文件中的Nan会引发类型错误
我正在加载一个包含数据的本地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+ 我尝
我尝试使用名为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