用一行代码标准化股票六位代码
我们用tushare等工具软件下载的股票代码很可能是数值型的(tushare的老接口六位码基本都是int),比如这样:
hs_300 date code name weight
0 2020-04-30 600010 NaN 0.19
1 2020-04-30 601888 NaN 0.68
2 2020-04-30 601318 NaN 6.10
3 2020-04-30 600958 NaN 0.26
…
25 2020-04-30 601919 NaN 0.11
26 2020-04-30 601360 NaN 0.06
27 2020-04-30 600998 NaN 0.08
28 2020-04-30 600583 NaN 0.08
29 2020-04-30 601877 NaN 0.20
… … … … …
270 2020-04-30 629 NaN 0.07
271 2020-04-30 423 NaN 0.11
272 2020-04-30 300347 NaN 0.31
273 2020-04-30 2493 NaN 0.17
274 2020-04-30 2008 NaN 0.20
275 2020-04-30 300059 NaN 0.74
276 2020-04-30 2415 NaN 0.91
277 2020-04-30 898 NaN 0.05
278 2020-04-30 100 NaN 0.48
279 2020-04-30 2945 NaN 0.03
280 2020-04-30 2271 NaN 0.27
281 2020-04-30 768 NaN 0.19
282 2020-04-30 2736 NaN 0.20
283 2020-04-30 2153 NaN 0.07
284 2020-04-30 661 NaN 0.63
285 2020-04-30 2032 NaN 0.08
286 2020-04-30 596 NaN 0.12
287 2020-04-30 300498 NaN 0.85
288 2020-04-30 2594 NaN 0.41
289 2020-04-30 300136 NaN 0.24
290 2020-04-30 2466 NaN 0.11
291 2020-04-30 1979 NaN 0.41
292 2020-04-30 338 NaN 0.49
293 2020-04-30 300017 NaN 0.12
294 2020-04-30 2352 NaN 0.31
295 2020-04-30 858 NaN 1.99
这就比较尴尬了… 常用的方式就是遍历、函数,能不能简单一点,只用一行代码完成转换呢?可以
下面展示一些 内联代码片
。
code=df_hs300['code']
code=code.apply(lambda x:str(x).zfill(6))
print('300_code',code)
执行结果:
29 601877
…
270 000629
271 000423
272 300347
273 002493
274 002008
275 300059
276 002415
277 000898
278 000100
279 002945
280 002271
281 000768
282 002736
283 002153
284 000661
285 002032
286 000596
287 300498
288 002594
289 300136
290 002466
291 001979
292 000338
293 300017
294 002352
295 000858
296 000002
297 002916
298 002236
299 000723