提问人:newleaf 提问时间:1/17/2020 更新时间:1/17/2020 访问量:7542
Pandas 空字符串为整数
Pandas empty string to integer
问:
有一个包含几列的 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
有什么建议或解决方法吗?
答:
7赞
newleaf
1/17/2020
#1
df['count'] = pd.to_numeric(df['count'], errors='coerce').astype('Int64')
评论
0赞
gehbiszumeis
1/17/2020
请始终将您的答案放在上下文中,而不仅仅是粘贴代码。有关详细信息,请参阅此处。
评论
df['count'] = pd.to_numeric(df['count'], errors='coerce')