繁体   English   中英

Python Pandas Dataframe 过滤器不起作用

[英]Python Pandas Dataframe filter not working

我有一个名为 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。 我该如何解决这个问题? 谢谢

我想你可以尝试强制转换为float通过astype -它似乎dtype柱的Betaobject (然后type显然是string ):

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

我有一个看起来像这样的熊猫 dfpandas 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

如果有帮助,我通过使用groupby函数并与sum聚合来创建列state ,但我认为这不会导致此错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM