Press "Enter" to skip to content

Pandas数据筛选(二)之多个条件筛选

筛选是在平时的工作中使用非常频繁的功能了,下面介绍一下通过变量来进行筛选过滤的一种方法,具体的逻辑是这样的,先把需要筛选的条件放在一个变量里面,然后通过这个变量来筛选出你所需要的内容。

例子:

    股票代码  股票名称  归母PE(ttm)  归母ROE(ttm)   NPM_TTM   ROA_TTM   速动比率   企业倍数
0   sz301169  零点有数    62.306138      0.065021  0.110247  0.051764   5.450016   5.227794
1   sz301177  迪阿股份    17.986032      0.187206  0.284855  0.157585   6.314361   9.271007
2   sz301179  泽宇智能    25.481480      0.092816  0.264405  0.070355   3.305845   4.565065
3   sz301180  万祥科技    42.584901      0.259790  0.130573  0.129920   1.095698   7.380815
4   sz301181  标榜股份    26.399146      0.248800  0.211721  0.192560   9.889680  12.351549
5   sz301182  凯旺科技    40.858474      0.056270  0.088815  0.041681   2.871182   2.916475
6   sz301185  鸥玛软件    33.792273      0.087265  0.390080  0.086053  62.187829  51.648491
7   sz301186  超达装备    49.989173      0.039705  0.102425  0.033423   3.481422   6.669385
8   sz301188  力诺特玻    28.542072      0.094575  0.149469  0.085106   5.569114  15.868162
9   sz301190  善水科技    32.865114      0.072101  0.257760  0.064114  10.337259   6.152762
10  sz301196  唯科科技    46.689666      0.138674  0.220384  0.087548   2.235250   5.095455
11  sz301198  喜悦智行    37.499693      0.160088  0.176957  0.120854   1.967677   8.537702
12  sz301199  迈赫股份    29.183628      0.132109  0.141607  0.065582   1.109006   3.043710
13  sz301200  大族数控    32.000642      0.292640  0.171149  0.144143   2.755392   6.639787
14  sz301201  诚达药业   122.442149      0.026411  0.456796  0.023607  21.194159  37.986648
15  sz301206  三元生物  -160.297154     -0.055984 -0.023554 -0.025647   0.714712   6.356551
16  sz301207  华兰疫苗    29.064820      0.221137  0.339364  0.137279   1.448317   4.274464
17  sz301213  观想科技    62.488157      0.285678  0.350176  0.189402   2.280041  21.687877
18  sz301215  中汽股份    -4.296199     -0.781835  0.075783 -0.638242   8.015360  15.572484
19  sz301216  万凯新材    21.524514      0.248051  0.046396  0.063712   0.522165   1.995424
20  sz301217  铜冠铜箔    31.851970      0.177059  0.090039  0.107016   1.034791   5.556694
21  sz301218  华是科技     9.212299      0.166644  0.151550  0.097171   1.357994   1.693989
22  sz301219  腾远钴业    17.992159      0.345925  0.276464  0.253062   1.550912   6.438328
23  sz301221  光庭信息    68.819145      0.032899  0.154087  0.032164  18.036021  15.265950
24  sz301222  浙江恒威    20.499700      0.059083  0.039218  0.033614   0.783340   0.840730
25  sz301226  祥明智能    35.276110      0.141008  0.085200  0.094914   1.685590   4.983147
26  sz301228  实朴检测    12.707446      0.068149  0.474787  0.061062   9.933059   4.320149
27  sz301229    纽泰格    56.488853      0.122222  0.095701  0.083207   1.343419   6.899854
28  sz301235  华康医疗    57.367654      0.137421  0.094518  0.065679   1.606536   3.917720
29  sz301236  软通动力    20.486579      0.186039  0.056405  0.089102   1.604448   1.495482
30  sz301237  和顺科技    24.207856      0.261850  0.193388  0.186847   1.128594   6.380337
31  sz301256  华融化学    51.450687      0.155758  0.158098  0.129929   3.579442  13.691850
32  sz301258    富士莱    36.873480      0.161813  0.230405  0.123880   2.587108   7.511398
33  sz301263    泰恩康    48.196565      0.169117  0.183581  0.127451   2.281404   7.316669
34  sz301268    铭利达    56.013573      0.185714  0.080633  0.069138   0.730431   4.425207
35  sz301279  金道科技    43.281168      0.157617  0.134517  0.089603   1.185380   5.762085

假设:我需要把归母ROE大于15%,净利润率大于20%,企业倍数大于10的股票筛选出来,代码如下:

df = pd.read_csv(r'C:/财务数据选股策略/001/60.csv', encoding='gbk')
df.dropna(axis=1,how='any',inplace=True)

condition = (df['归母ROE(ttm)'] >= 0.15)
condition &= (df['NPM_TTM'] >= 0.2)
condition &= (df['企业倍数'] >= 10)

df = df[condition]

print(df)

注意:&= 的意思就是2个条件同时满足的意思,& 跟 and 的意思差不多

结果如下:

    股票代码  股票名称  归母PE(ttm)  归母ROE(ttm)   NPM_TTM   ROA_TTM  速动比率   企业倍数
4   sz301181  标榜股份    26.399146      0.248800  0.211721  0.192560  9.889680  12.351549
17  sz301213  观想科技    62.488157      0.285678  0.350176  0.189402  2.280041  21.687877

发表评论

您的电子邮箱地址不会被公开。