如何将 ' ' 转换为 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
我有一个数据框,其中有一列是对象。当我检查空值时,数据集说它没有空值,但有一行有一个 ' ' 表示年龄。 我想将列从 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