如果有字符串,如何将Pandas列转换为数字?[duplicate]

zzlelutf  于 2023-03-16  发布在  其他
关注(0)|答案(1)|浏览(168)

此问题在此处已有答案

Pandas: Converting to numeric, creating NaNs when necessary(4个答案)
3天前关闭。
我有一个数据集,有数值,空值和文本值。我想在Pandas中做以下事情:
1.数值-〉浮点
1.空值-〉N/A
1.文本值-〉N/A
当我尝试运行astype('float')时,我得到一个错误:

import pandas as pd
data = ['5', '4', '3', '', 'NO DATA ', '5']
data = ['5', '4', '3', '', '', '5']
df = pd.DataFrame({'data': data})

df[['data']].astype('float')

我试着看过文档和stackoverflow,但我没有找到如何做到这一点。

hyrbngr7

hyrbngr71#

使用panda的to_numeric函数,我们可以将任何有效值转换为浮点数,而将无效值转换为NaN:

import pandas as pd
data = ['5', '4', '3', 'NO DATA', '', '5']
df = pd.DataFrame({'data': data})

df['data'] = pd.to_numeric(df['data'], errors='coerce')

errors='coerce'确保将无效值转换为NaN,而不是引发错误。
结果会是:

data
0   5.0
1   4.0
2   3.0
3   NaN
4   NaN
5   5.0

相关问题