2016-12-02 58 views
1

我有一个熊猫数据框具有以下内容称为DF:Python的熊猫数据帧过滤器不工作

Symbol      Cat   Beta Eps MktCap 
2350 FBP Foreign Regional Banks   0 0  0 
2351 FNBC Foreign Regional Banks   0 0  0 
2353 BSBR Foreign Regional Banks   0 0  0 
2354 BBD Foreign Regional Banks   0 0  0 
2355 HDB Foreign Regional Banks   0 0  0 
2356 BCH Foreign Regional Banks   0 0  0 
2358  WF Foreign Regional Banks   0 0 None 
2359 SMFG Foreign Regional Banks   0 0 None 
2360 BFR Foreign Regional Banks   0 0  0 
2361 BCA Foreign Regional Banks   0 0  0 
2362 BPOP Foreign Regional Banks   0 0 None 
2363 CIB Foreign Regional Banks   0 0  0 
2364 ITUB Foreign Regional Banks   0 0  0 
2365 BMA Foreign Regional Banks   0 0  0 
2366  KB Foreign Regional Banks   0 0 None 
2367 BBDO Foreign Regional Banks   0 0  0 
2368 BSMX Foreign Regional Banks   0 0 None 
2369 BBVA Foreign Regional Banks   0 0 None 
2370 SHG Foreign Regional Banks   0 0  0 
2352  DB Foreign Regional Banks   1.08 0  0 
2357 MFG Foreign Regional Banks 6.101694915 0 None 

我用下面的Python代码:

df2 = df[df.Beta > 0] 

产生的DF2不滤除Beta的0值表示它保持等于df。我该如何解决? 感谢

+0

它的工作对我来说。 “Beta”的数据类型是什么?当我使用'read_clipboard()'读取数据帧时,该列被赋予'float'格式,并且它正常工作。 – Khris

回答

1

我想你可以通过astype尝试投地float - 似乎Betadtypeobject(当时type显然是string):

df2 = df[df.Beta.astype(float) > 0] 
+1

我可能投到int - 比较花车将是iffy充其量。特别是如果一些值接近零或是计算的结果 –

+0

我不确定这是否是个好主意,因为四舍五入问题。 – jezrael

+0

谢谢@jezreal,因为它工作正常 –