如何将 ' ' 转换为 int?

How to convert a ' ' to an int?

我有一个数据框,其中有一列是对象。当我检查空值时,数据集说它没有空值,但有一行有一个 ' ' 表示年龄。 我想将列从 object 转换为 int,但是 1 值让我很难过。

这是我尝试过的:

df['perpetrator_age'].replace('', '0', regex=True)
df.head()

不替换值。

df['perpetrator_age'].astype(int)

ValueError: invalid literal for int() with base 10: ' '

经过一番搜索后,我想也许可以先尝试将其转换为浮点数,但是 :

df['perpetrator_age'].astype(float).astype(int)

ValueError: could not convert string to float: ''

感谢任何帮助!

尝试:

df['perpetrator_age'].astype('int')

不要忘记“ ”

正如评论中提到的,作业丢失了,结果证明一个简单的 inplace=True 解决了我所有的问题!

我最初编写的代码实际上很好,但如果没有 inplace 参数,它实际上并不是 changing/overwriting 现有数据框,因为 inplace=False 是默认设置。一旦我添加了 inplace=True,它就变了!

https://jman4190.medium.com/explaining-the-inplace-parameter-for-beginners-5de7ffa18d2e 这篇文章对解释很有帮助。

df['perpetrator_age'].replace(' ', 0, regex=False, inplace=True)

这将我的“ ”值更改为零,然后我 运行 下面的代码将整个列从对象转换为 int。

df['perpetrator_age'].astype(int)

谢谢大家的帮助:)

正如我在评论中提到的,我猜作业丢失了。

这是一个非常基本的示例,其中包含一个 '' 字符串。

import pandas as pd

df = pd.DataFrame({'a':[1,2,3,'',4,5]})
df['a'].replace('',0, inplace=True)
# df['a'] = df['a'].replace('',0) as an equivilant
>>> df.head()
   a
0  1
1  2
2  3
3  0
4  4
5  5