一个dataframe表格可能有很多行,我们用的时候往往只提取其中的一行或多行,这个时候我们需要用的方法为主要有三种:下标提取、loc和iloc。下面我们学习一下这三种方式。
首先,生成一个多行多列的表格:
df=pro.index_daily(trade_date="20231123",fields="ts_code,trade_date,pre_close,close,change,pct_chg")
df=df[:10].T
df
结果为:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
ts_code |
000001.SH |
000001CNY01.SH |
000002.SH |
000003.SH |
000004.SH |
000005.SH |
000006.SH |
000007.SH |
000008.SH |
000009.SH |
trade_date |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
pre_close |
3043.611 |
3286.8299 |
3191.0341 |
231.3865 |
2764.0295 |
2458.2772 |
4912.8458 |
4223.8801 |
2576.8992 |
5307.8358 |
close |
3061.8562 |
3306.5331 |
3210.1452 |
232.4834 |
2785.4243 |
2466.7073 |
5007.5077 |
4242.3768 |
2582.982 |
5358.8442 |
change |
18.2452 |
19.7032 |
19.1111 |
1.0969 |
21.3948 |
8.4301 |
94.6619 |
18.4967 |
6.0828 |
51.0084 |
pct_chg |
0.5995 |
0.5995 |
0.5989 |
0.4741 |
0.774 |
0.3429 |
1.9268 |
0.4379 |
0.2361 |
0.961 |
1、选其中一行。
iloc是这样提取的:
df.iloc[3]
结果为:
0 3061.8562
1 3306.5331
2 3210.1452
3 232.4834
4 2785.4243
5 2466.7073
6 5007.5077
7 4242.3768
8 2582.982
9 5358.8442
Name: close, dtype: object
loc是这样提取的:
df.loc['pre_close']
结果为:
0 3043.611
1 3286.8299
2 3191.0341
3 231.3865
4 2764.0295
5 2458.2772
6 4912.8458
7 4223.8801
8 2576.8992
9 5307.8358
Name: pre_close, dtype: object
下标是这样提取的:
df[2:3]
结果为:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
pre_close |
3043.611 |
3286.8299 |
3191.0341 |
231.3865 |
2764.0295 |
2458.2772 |
4912.8458 |
4223.8801 |
2576.8992 |
5307.8358 |
2、选其中的多行。
iloc是这样提取的:
df.iloc[1:3]
结果为:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
trade_date |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
pre_close |
3043.611 |
3286.8299 |
3191.0341 |
231.3865 |
2764.0295 |
2458.2772 |
4912.8458 |
4223.8801 |
2576.8992 |
5307.8358 |
loc是这样提取的:
df.loc['pre_close':'pct_chg']
结果为:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
pre_close |
3043.611 |
3286.8299 |
3191.0341 |
231.3865 |
2764.0295 |
2458.2772 |
4912.8458 |
4223.8801 |
2576.8992 |
5307.8358 |
close |
3061.8562 |
3306.5331 |
3210.1452 |
232.4834 |
2785.4243 |
2466.7073 |
5007.5077 |
4242.3768 |
2582.982 |
5358.8442 |
change |
18.2452 |
19.7032 |
19.1111 |
1.0969 |
21.3948 |
8.4301 |
94.6619 |
18.4967 |
6.0828 |
51.0084 |
pct_chg |
0.5995 |
0.5995 |
0.5989 |
0.4741 |
0.774 |
0.3429 |
1.9268 |
0.4379 |
0.2361 |
0.961 |
下标是这样提取的:
df[1:3]
结果为:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
trade_date |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
20231123 |
pre_close |
3043.611 |
3286.8299 |
3191.0341 |
231.3865 |
2764.0295 |
2458.2772 |
4912.8458 |
4223.8801 |
2576.8992 |
5307.8358 |
三种方式的提取有各自的语法,对应不好就容易出错。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/75055
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!