微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pandas如何将所有字符串值转换为float

我想将Pandas DataFrame中的所有字符串值转换为float,我可以定义一个函数来执行此操作,但它不是Pythonic方法.我的DataFrame看起来像这样:

>>> 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的内置函数将所有字符串值转换为float.如果你知道Pandas doc上的内置函数,请发布链接.

解决方法:

假设所有值都可以正确转换为float,则可以使用DataFrame.astype()函数将完整数据帧的类型转换为float.示例 –

df = df.astype(float)

演示 –

In [5]: df = pd.DataFrame(np.array([['1', '2', '3'], ['4', '5', '6']]))

In [6]: df.astype(float)
Out[6]:
   0  1  2
0  1  2  3
1  4  5  6

In [7]: df = df.astype(float)

In [8]: df.dtypes
Out[8]:
0    float64
1    float64
2    float64
dtype: object

.astype()函数还有一个raise_on_error参数(认为True),您可以将其设置为False以使其忽略错误.在这种情况下,原始值在DataFrame中使用 –

In [10]: df = pd.DataFrame([['1', '2', '3'], ['4', '5', '6'],['blah','bloh','bleh']])

In [11]: df.astype(float,raise_on_error=False)
Out[11]:
      0     1     2
0     1     2     3
1     4     5     6
2  blah  bloh  bleh

要将一个系列/列转换为float,再次假设所有值都可以转换,您可以使用[Series.astype()] [2].示例 –

df['somecol'] = df['somecol'].astype(<type>)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐