今天我们学习排序,包括按索引排序和按某一列排序。另外我们学习一种生成新列的方法。
首选,还是用之前的那个dataframe,是这样生成的:
df=pro.index_daily(trade_date="20231123",fields="ts_code,trade_date,pre_close,close,change,pct_chg")
df=df[:5]
df
结果:
ts_code |
trade_date |
pre_close |
close |
pct_chg |
|
0 |
000001.SH |
20231123 |
3043.6110 |
3061.8562 |
0.5995 |
1 |
000001CNY01.SH |
20231123 |
3286.8299 |
3306.5331 |
0.5995 |
2 |
000002.SH |
20231123 |
3191.0341 |
3210.1452 |
0.5989 |
3 |
000003.SH |
20231123 |
231.3865 |
232.4834 |
0.4741 |
4 |
000004.SH |
20231123 |
2764.0295 |
2785.4243 |
0.7740 |
下面按“close”一列升序排列:
df.sort_values(by=['close'])
结果:
ts_code |
trade_date |
pre_close |
close |
pct_chg |
|
3 |
000003.SH |
20231123 |
231.3865 |
232.4834 |
0.4741 |
4 |
000004.SH |
20231123 |
2764.0295 |
2785.4243 |
0.7740 |
0 |
000001.SH |
20231123 |
3043.6110 |
3061.8562 |
0.5995 |
2 |
000002.SH |
20231123 |
3191.0341 |
3210.1452 |
0.5989 |
1 |
000001CNY01.SH |
20231123 |
3286.8299 |
3306.5331 |
0.5995 |
下面按索引升序排列:
df.sort_index()
结果为:
ts_code |
trade_date |
pre_close |
close |
pct_chg |
|
0 |
000001.SH |
20231123 |
3043.6110 |
3061.8562 |
0.5995 |
1 |
000001CNY01.SH |
20231123 |
3286.8299 |
3306.5331 |
0.5995 |
2 |
000002.SH |
20231123 |
3191.0341 |
3210.1452 |
0.5989 |
3 |
000003.SH |
20231123 |
231.3865 |
232.4834 |
0.4741 |
4 |
000004.SH |
20231123 |
2764.0295 |
2785.4243 |
0.7740 |
现在生成一个新列price_level,以close一列的数据为依据,如果大于3000,则标记为high;如果不超过3000,则标记为low。代码如下:
df['price_level'] = np.where(df['close'] > 3000,'high','low')
df
结果为(红色列为新生成的列):
ts_code |
trade_date |
pre_close |
close |
pct_chg |
price_level |
|
0 |
000001.SH |
20231123 |
3043.6110 |
3061.8562 |
0.5995 |
high |
1 |
000001CNY01.SH |
20231123 |
3286.8299 |
3306.5331 |
0.5995 |
high |
2 |
000002.SH |
20231123 |
3191.0341 |
3210.1452 |
0.5989 |
high |
3 |
000003.SH |
20231123 |
231.3865 |
232.4834 |
0.4741 |
low |
4 |
000004.SH |
20231123 |
2764.0295 |
2785.4243 |
0.7740 |
low |
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/75051
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!