我有一个名为df的Pandas数据框,其中包含以下内容:
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 :(得分:1)
我认为您可以astype
尝试转换为float
- dtype
列的Beta
似乎是object
(然后type
是显然是string
):
df2 = df[df.Beta.astype(float) > 0]
答案 1 :(得分:0)
我有一个如下所示的 Pandas df:pandas df。
我的问题是,当我尝试使用过滤器或条件查找某个状态时,我发现该状态不存在,即使我可以看到它存在。
例如
state_df.loc[state_df['state'] == 'AK']
导致 df 没有行,这意味着它找不到 AK。
我认为这个问题可能与列的 dtype 有关,但对我来说也很好:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 44 entries, 0 to 43
Data columns (total 6 columns):
state 44 non-null object
high_risk_per_ICU_bed 44 non-null float64
high_risk_per_hospital 44 non-null float64
icu_beds 44 non-null float64
hospitals 44 non-null float64
total_at_risk 44 non-null float64
dtypes: float64(5), object(1)
memory usage: 2.2+ KB
如果有帮助,我通过使用 state
函数并与 groupby
聚合来创建列 sum
,但我认为这不会导致此错误。