2024-04-26 21:29:46 发布
网友
有一个csv文件,包含数字,“**”,“(X)”和NAN。 然后我用pd.read\U csv文件()将此导入数据帧。 见:import data
但df中的所有值都是“str”类型。见:desc data
我想过滤num并把它们转换成float类型,其他的转换成NAN。 请帮帮我。谢谢!你知道吗
尝试使用NaN的pd.read_csv()过滤器。对于每一列,您可以指定应被视为NaN的不同值。在您的情况下,这应该起作用:
NaN
pd.read_csv()
df = pd.read_csv('your_file.csv', na_values={'HC04_VC03': '(X)', 'HC04_VC04': '***'})
熊猫将自动为您的数据选择合适的数据类型。在本例中,您将获得所需的浮点列。您还可以使用参数dtype = {'GEO.id2': np.int64, 'HC04_VC04': np.float64, 'HC02_VC05': np.float64}或您选择的任何其他有效数据类型指定在csv文件中读取的数据类型。请小心使用此选项,因为如果无法将数据转换为所需的类型(例如,如果不首先删除所有'***'字符串),则设置数据类型将引发错误。你知道吗
dtype = {'GEO.id2': np.int64, 'HC04_VC04': np.float64, 'HC02_VC05': np.float64}
'***'
或者,可以在不指定数据类型的情况下读入csv文件,然后使用pd.to_numeric转换列。例如
df['GEO.id2'] = pd.to_numeric(df['GEO.id2'], errors = 'ignore') # values that can't be converted to integer types will be left alone
在文档中,还有其他处理无法转换的数据的方法。你知道吗
尝试使用
NaN
的pd.read_csv()
过滤器。对于每一列,您可以指定应被视为NaN的不同值。在您的情况下,这应该起作用:熊猫将自动为您的数据选择合适的数据类型。在本例中,您将获得所需的浮点列。您还可以使用参数
dtype = {'GEO.id2': np.int64, 'HC04_VC04': np.float64, 'HC02_VC05': np.float64}
或您选择的任何其他有效数据类型指定在csv文件中读取的数据类型。请小心使用此选项,因为如果无法将数据转换为所需的类型(例如,如果不首先删除所有'***'
字符串),则设置数据类型将引发错误。你知道吗或者,可以在不指定数据类型的情况下读入csv文件,然后使用pd.to_numeric转换列。例如
在文档中,还有其他处理无法转换的数据的方法。你知道吗
相关问题 更多 >
编程相关推荐