在包含NAN的数据帧单元中提取int值并出现错误TypeError:unorderable types:str()> INT()

时间:2017-08-14 13:34:25

标签: python string object dataframe indexing

我有一个搜索互联网并找到包含某些短语的网址的代码,尝试打开网址,如果可以的话,将它们输入到名为Mastersurl的Dataframe中,如下所示:

>>> Masterurls
 Matches     Searching for  \
0       0.0  Green Bond Index 
1       Na  Green Bond Index
2       1  Green Bond 

如果无法打开,则在“匹配”列中返回“Na”。我试图通过尝试找到列的值大于0的行:

 Masterurls.Matches>0
Masterurls['Matches']>0
float(Masterurls['Matches'])>0
int(Masterurls['Matches'])>0

检查类型(Masterurls)= object 所有返回错误:unorderable types:str()>int() 如果我将“Na”值更改为-1,则类型(Mastervalues['Matches'])将更改为Float并且代码将运行。我如何告诉它检查数据框Mastersurl的“匹配”列中的单元格,其中值大于0,而不是“Na”?

1 个答案:

答案 0 :(得分:1)

我们可以使用to_numeric()方法:

Masterurls.loc[pd.to_numeric(Masterurls.Matches, errors='coerce') > 0]

演示:

In [146]: Masterurls
Out[146]:
  Matches     Searching for
0     0.0  Green Bond Index
1      Na  Green Bond Index
2       1        Green Bond

In [147]: Masterurls.loc[pd.to_numeric(Masterurls.Matches, errors='coerce') > 0]
Out[147]:
  Matches Searching for
2       1    Green Bond

In [148]: Masterurls[pd.to_numeric(Masterurls.Matches, errors='coerce') > 0]
Out[148]:
  Matches Searching for
2       1    Green Bond