当前位置:  开发笔记 > 编程语言 > 正文

将字符串转换为DataFrame中的浮点数

如何解决《将字符串转换为DataFrame中的浮点数》经验,为你挑选了5个好方法。

如何将包含字符串和NaN值的DataFrame列转换为浮点数.还有另一列,其值为字符串和浮点数; 如何将整个列转换为浮点数.



1> Jeff..:

注意: pd.convert_objects现已弃用.您应该使用pd.Series.astype(float)pd.to_numeric如其他答案中所述.

这是0.11.强制转换(或设置为nan)即使astype失败也会起作用; 它也是系列的系列所以它不会转换说完整的字符串列

In [10]: df = DataFrame(dict(A = Series(['1.0','1']), B = Series(['1.0','foo'])))

In [11]: df
Out[11]: 
     A    B
0  1.0  1.0
1    1  foo

In [12]: df.dtypes
Out[12]: 
A    object
B    object
dtype: object

In [13]: df.convert_objects(convert_numeric=True)
Out[13]: 
   A   B
0  1   1
1  1 NaN

In [14]: df.convert_objects(convert_numeric=True).dtypes
Out[14]: 
A    float64
B    float64
dtype: object


现在是较新版本的pd.to_numeric(col)
`df ['ColumnName'] = df ['ColumnName'].convert_objects(convert_numeric = True)`您只能转换一列.
convert_objects在较新的pandas中已弃用.使用特定于数据类型的转换器pd.to_numeric.

2> root..:

你可以试试df.column_name = df.column_name.astype(float).至于NaN值,您需要指定它们的转换方式,但您可以使用该.fillna方法来执行此操作.

例:

In [12]: df
Out[12]: 
     a    b
0  0.1  0.2
1  NaN  0.3
2  0.4  0.5

In [13]: df.a.values
Out[13]: array(['0.1', nan, '0.4'], dtype=object)

In [14]: df.a = df.a.astype(float).fillna(0.0)

In [15]: df
Out[15]: 
     a    b
0  0.1  0.2
1  0.0  0.3
2  0.4  0.5

In [16]: df.a.values
Out[16]: array([ 0.1,  0. ,  0.4])



3> Salvador Dal..:

在较新版本的pandas(0.17及更高版本)中,您可以使用to_numeric函数.它允许您转换整个数据框或仅转换单个列.它还使您能够选择如何处理无法转换为数值的内容:

import pandas as pd
s = pd.Series(['1.0', '2', -3])
pd.to_numeric(s)
s = pd.Series(['apple', '1.0', '2', -3])
pd.to_numeric(s, errors='ignore')
pd.to_numeric(s, errors='coerce')


要将`pd.to_numeric`应用于`DataFrame`,可以使用`df.apply(pd.to_numeric)`作为[在此答案中详细解释](/sf/ask/17360801/) .

4> Claude COULO..:
df['MyColumnName'] = df['MyColumnName'].astype('float64') 


当从String转换为Float时,这不起作用:`ValueError:无法将字符串转换为float:'date'

5> 小智..:

您必须先将np.nan替换为空字符串(''),然后再转换为float。即:

df['a']=df.a.replace('',np.nan).astype(float)

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有