我正在尝试将下面我的数据框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}}
答案 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