我想把Pandas DataFrame
中的所有string
值转换成float
,我可以定义一个短函数来完成这项工作,但这不是一种Pythonic方法。我的数据帧如下所示:
>>> df = pd.DataFrame(np.array([['1', '2', '3'], ['4', '5', '6']]))
>>> df
0 1 2
0 1 2 3
1 4 5 6
>>> df.dtypes
0 object
1 object
2 object
dtype: object
>>> type(df[0][0])
<type 'str'>
我只是想知道是否有一些内置函数Pandas DataFrame
将所有string
值转换为float
。如果你知道熊猫文档的内置功能,请发布链接。
假设所有值都可以正确转换为float,则可以使用^{} 函数将完整数据帧的类型转换为float。示例-
演示-
.astype()
函数还有一个raise_on_error
参数(默认为True),您可以将其设置为False
,使其忽略错误。在这种情况下,原始值用于数据帧-要仅将序列/列转换为浮点数,同样假设所有值都可以转换,可以使用
[Series.astype()][2]
。示例-另一种选择是使用^{} 。它试图
将数字字符串转换为数字,不可转换的值将变为NaN:
收益率
相反,
df.astype(float)
将引发ValueError: could not convert string to float: quux
,因为在上述数据帧中,某些字符串(例如'quux'
)不是数字。注意:在pandas的未来版本中(0.16.2之后),函数参数将是
numeric=True
,而不是convert_numeric=True
。相关问题 更多 >
编程相关推荐