pandas导入数据的时候,如果给列设定一个数据类型,如何在当类型不对的时候给予一个默认值?

代码如下:

df=pd.read_excel("pc1.xls",skiprows=3)
df[[6,7]]=df[[6,7]].astype(float)

我把6,7这两列设置成了float,然后假设这时候6,7列的数据是"-","NONE",'X'
这种字符内容的时候。
如何让pandas自动处理成默认值?

目前会报错说str无法转换成float

阅读 10.2k
4 个回答

na_values : list-like, default None
List of additional strings to recognize as NA/NaN

df=pd.read_excel("pc1.xls",skiprows=3, na_values=["-","NONE",'X'])

建议你在导入之前清洗数据,而不应该在导入时来做处理

额,如果是数字组成的str本来就可以做各种运算的吧,不需要显式转换类型吧。

新手上路,请多包涵

参考这个:
df['IP'] = df['IP'].apply(pd.to_numeric,errors='0')

用pd.to_numeric 。有个errors属性,,百度一下有详细用法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题