筛选是在平时的工作中使用非常频繁的功能了,下面介绍一下通过变量来进行筛选过滤的一种方法,具体的逻辑是这样的,先把需要筛选的条件放在一个变量里面,然后通过这个变量来筛选出你所需要的内容。
例子:
股票代码 股票名称 归母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