简单学Pythonpanads库12dataframe处理排序和生成新列

今天我们学习排序,包括按索引排序和按某一列排序。另外我们学习一种生成新列的方法。

首选,还是用之前的那个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
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 11 日 下午2:49
下一篇 2024 年 7 月 11 日 下午2:50

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注