尝试将Dataframe Column转换为float时的ValueError

时间:2015-06-29 15:13:32

标签: python pandas

我正在尝试将下面我的数据框df的列ValueError: could not convert string to float: ' na'下的所有数据转换为浮点类型,但我正面临着这样做的问题。我收到了错误if row1['Yield_pct'] != 'na':,因此我在下面的代码中添加了行 Date Maturity Yield_pct Currency 0 1986-01-01 0.25 na CAD 1 1986-01-02 0.25 0.0948511020 CAD 2 1986-01-03 0.25 0.0972953210 CAD 3 1986-01-06 0.25 0.0965403640 CAD 4 1986-01-07 0.25 0.0953292440 CAD for (i1, row1) in (df.iterrows()): if row1['Yield_pct'] != 'na': row1['Yield_pct'] = float(row1['Yield_pct']) if isinstance(row1['Yield_pct'], float)==1: print('SUCCESS') else: print('FAILURE') ,但在添加此行后我收到了同样的错误。

df

谢谢

修改:这是数据框920538 2015-01-19 empty string CAD 920539 2015-01-20 empty string CAD 920540 2015-01-21 empty string CAD 920541 2015-01-22 empty string CAD 920542 2015-01-23 empty string CAD 920543 2015-01-26 empty string CAD 的下半部分:

df = update('CAD')[0]
for (i1, row1) in (df.iterrows()):
    df = df.convert_objects(convert_numeric=True)
    if isinstance(row1['Yield_pct'], float)==1:
        print('SUCCESS')
    else:
        print('FAILURE')

我现在使用的代码:

{{1}}

1 个答案:

答案 0 :(得分:3)

只需使用convert_objects,就会将任何duff值强制转换为NaN

In [75]:
df = df.convert_objects(convert_numeric=True)
df

Out[75]:
         Date  Maturity  Yield_pct Currency
0  1986-01-01      0.25        NaN      CAD
1  1986-01-02      0.25   0.094851      CAD
2  1986-01-03      0.25   0.097295      CAD
3  1986-01-06      0.25   0.096540      CAD
4  1986-01-07      0.25   0.095329      CAD