Pandas 空字符串为整数

Pandas empty string to integer

提问人:newleaf 提问时间:1/17/2020 更新时间:1/17/2020 访问量:7542

问:

有一个包含几列的 csv 文件,有些列混合了字母和数字。需要删除字母并设置为 null 并将列更改为整数,但出现一些错误。似乎 Pandas 最近添加了可为 null 的整数类型。https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html。但是在更改为 int 时我仍然遇到错误。我需要将列保持为 int,这样我就不能使用另一种解决方法将列设置为在列中使用 NAN 浮动。 数据如下所示:

 id    count      volume   
 001,     A   ,       1
 002,     1   ,       2

列数和体积包含以下值:' 1 ', ' 2 ',' A',.....

我使用 re 模块删除字母和空格

df["count"] = df["count"].apply(lambda x: re.sub(r'\s[a-zA-Z]*', '',x))

现在,列中的值如下所示:'1', '2','',.......

尝试更改为“Int64”,但出现错误:

  df["count"].astype(str).astype('Int64')

TypeError:无法将对象转换为 IntegerDtype

有什么建议或解决方法吗?

熊猫

评论

3赞 Erfan 1/17/2020
df['count'] = pd.to_numeric(df['count'], errors='coerce')
0赞 newleaf 1/17/2020
df['count'] = pd.to_numeric(df['count'], errors='coerce').astype('Int64') 终于起作用了。

答:

7赞 newleaf 1/17/2020 #1
 df['count'] = pd.to_numeric(df['count'], errors='coerce').astype('Int64')

评论

0赞 gehbiszumeis 1/17/2020
请始终将您的答案放在上下文中,而不仅仅是粘贴代码。有关详细信息,请参阅此处