如何操作pandas?
用一个实际的数据集练手可能是最快最好的方法。
今天就和大家一起探索pandas关于数据操作和处理的基础方法。
1.获取股票数据¶
使用数据API获取数据,参考:BigQuant数据API详解
stock = D.instruments()[:20] #选取股票列表中前20只股票
df = D.history_data(stock,
'2017-08-01',
'2017-08-05',
['company_name','company_type','volume',
'fs_net_profit','fs_roe']) #获取相关股票数据
# 分别为公司名称,公司类型,成交量,净利润,净资产收益率
df.head() # 只查看前5行
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
2.数据初探¶
df.head(3) # 取前3行数据查看
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
df.tail(3) # 取最后3行数据查看
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
| 77 |
000021.SZA |
2017-08-04 |
11471227 |
深圳长城开发科技股份有限公司 |
中央国有企业 |
116724688.0 |
2.1430 |
| 78 |
000022.SZA |
2017-08-04 |
13885068 |
深圳赤湾港航股份有限公司 |
中央国有企业 |
138844496.0 |
2.9044 |
| 79 |
000023.SZA |
2017-08-04 |
0 |
深圳市天地(集团)股份有限公司 |
公众企业 |
10531537.0 |
2.6827 |
df.sample(5) # 随机抽取5条数据查看
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
| 67 |
000009.SZA |
2017-08-04 |
84400932 |
中国宝安集团股份有限公司 |
公众企业 |
3.347200e+07 |
0.7437 |
| 51 |
000014.SZA |
2017-08-03 |
1209840 |
沙河实业股份有限公司 |
地方国有企业 |
-3.359943e+06 |
-0.4574 |
| 38 |
000022.SZA |
2017-08-02 |
10208777 |
深圳赤湾港航股份有限公司 |
中央国有企业 |
1.388445e+08 |
2.9044 |
| 19 |
000023.SZA |
2017-08-01 |
0 |
深圳市天地(集团)股份有限公司 |
公众企业 |
1.053154e+07 |
2.6827 |
| 74 |
000018.SZA |
2017-08-04 |
9099017 |
神州长城股份有限公司 |
民营企业 |
9.902958e+07 |
5.4350 |
df.shape #查看数据行列大小
(80, 7)
df.columns #查看数据的列名
Index(['instrument', 'date', 'volume', 'company_name', 'company_type',
'fs_net_profit', 'fs_roe'],
dtype='object')
df.describe() #查看数据的统计值
|
volume |
fs_net_profit |
fs_roe |
| count |
8.000000e+01 |
8.000000e+01 |
80.000000 |
| mean |
2.153483e+07 |
3.934997e+08 |
1.595305 |
| std |
3.982048e+07 |
1.353417e+09 |
2.877810 |
| min |
0.000000e+00 |
-2.550807e+07 |
-1.158000 |
| 25% |
3.457600e+06 |
-1.352505e+05 |
-0.058325 |
| 50% |
7.385609e+06 |
1.838845e+07 |
0.821900 |
| 75% |
1.738763e+07 |
1.222546e+08 |
2.286550 |
| max |
2.062069e+08 |
6.214000e+09 |
11.774600 |
df.info() #查看导入数据类型
<class 'pandas.core.frame.DataFrame'>
Int64Index: 80 entries, 0 to 79
Data columns (total 7 columns):
instrument 80 non-null object
date 80 non-null datetime64[ns]
volume 80 non-null int64
company_name 80 non-null object
company_type 80 non-null object
fs_net_profit 80 non-null float64
fs_roe 80 non-null float64
dtypes: datetime64[ns](1), float64(2), int64(1), object(3)
memory usage: 5.0+ KB
3.行/列选取¶
df.iloc[22] #利用iloc命令做行选取
instrument 000004.SZA
date 2017-08-02 00:00:00
volume 792395
company_name 深圳中国农大科技股份有限公司
company_type 民营企业
fs_net_profit -1.17797e+06
fs_roe -0.9797
Name: 22, dtype: object
df.loc[22:25] #利用loc命令做行选取
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
| 22 |
000004.SZA |
2017-08-02 |
792395 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
| 23 |
000005.SZA |
2017-08-02 |
6313300 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
| 24 |
000006.SZA |
2017-08-02 |
15834085 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
| 25 |
000007.SZA |
2017-08-02 |
5313578 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
0.0747 |
df.loc[[22,33,44]] #利用loc命令做指定行选取
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
| 22 |
000004.SZA |
2017-08-02 |
792395 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
| 33 |
000017.SZA |
2017-08-02 |
3603500 |
深圳中华自行车(集团)股份有限公司 |
民营企业 |
2.123222e+05 |
1.4668 |
| 44 |
000006.SZA |
2017-08-03 |
14414290 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
df['company_name'] #查看'company_name'列数据
0 平安银行股份有限公司
1 万科企业股份有限公司
2 深圳中国农大科技股份有限公司
3 深圳世纪星源股份有限公司
4 深圳市振业(集团)股份有限公司
5 深圳市全新好股份有限公司
6 神州高铁技术股份有限公司
7 中国宝安集团股份有限公司
8 深圳美丽生态股份有限公司
9 深圳市物业发展(集团)股份有限公司
10 中国南玻集团股份有限公司
11 沙河实业股份有限公司
12 康佳集团股份有限公司
13 深圳中华自行车(集团)股份有限公司
14 神州长城股份有限公司
15 深圳市深宝实业股份有限公司
16 深圳中恒华发股份有限公司
17 深圳长城开发科技股份有限公司
18 深圳赤湾港航股份有限公司
19 深圳市天地(集团)股份有限公司
20 平安银行股份有限公司
21 万科企业股份有限公司
22 深圳中国农大科技股份有限公司
23 深圳世纪星源股份有限公司
24 深圳市振业(集团)股份有限公司
25 深圳市全新好股份有限公司
26 神州高铁技术股份有限公司
27 中国宝安集团股份有限公司
28 深圳美丽生态股份有限公司
29 深圳市物业发展(集团)股份有限公司
...
50 中国南玻集团股份有限公司
51 沙河实业股份有限公司
52 康佳集团股份有限公司
53 深圳中华自行车(集团)股份有限公司
54 神州长城股份有限公司
55 深圳市深宝实业股份有限公司
56 深圳中恒华发股份有限公司
57 深圳长城开发科技股份有限公司
58 深圳赤湾港航股份有限公司
59 深圳市天地(集团)股份有限公司
60 平安银行股份有限公司
61 万科企业股份有限公司
62 深圳中国农大科技股份有限公司
63 深圳世纪星源股份有限公司
64 深圳市振业(集团)股份有限公司
65 深圳市全新好股份有限公司
66 神州高铁技术股份有限公司
67 中国宝安集团股份有限公司
68 深圳美丽生态股份有限公司
69 深圳市物业发展(集团)股份有限公司
70 中国南玻集团股份有限公司
71 沙河实业股份有限公司
72 康佳集团股份有限公司
73 深圳中华自行车(集团)股份有限公司
74 神州长城股份有限公司
75 深圳市深宝实业股份有限公司
76 深圳中恒华发股份有限公司
77 深圳长城开发科技股份有限公司
78 深圳赤湾港航股份有限公司
79 深圳市天地(集团)股份有限公司
Name: company_name, dtype: object
df[['instrument', 'company_name', 'fs_roe']] #获取多列数据
|
instrument |
company_name |
fs_roe |
| 0 |
000001.SZA |
平安银行股份有限公司 |
3.0319 |
| 1 |
000002.SZA |
万科企业股份有限公司 |
0.6116 |
| 2 |
000004.SZA |
深圳中国农大科技股份有限公司 |
-0.9797 |
| 3 |
000005.SZA |
深圳世纪星源股份有限公司 |
-0.7938 |
| 4 |
000006.SZA |
深圳市振业(集团)股份有限公司 |
2.0537 |
| 5 |
000007.SZA |
深圳市全新好股份有限公司 |
0.0747 |
| 6 |
000008.SZA |
神州高铁技术股份有限公司 |
0.1525 |
| 7 |
000009.SZA |
中国宝安集团股份有限公司 |
0.7437 |
| 8 |
000010.SZA |
深圳美丽生态股份有限公司 |
-1.1580 |
| 9 |
000011.SZA |
深圳市物业发展(集团)股份有限公司 |
11.7746 |
| 10 |
000012.SZA |
中国南玻集团股份有限公司 |
2.1545 |
| 11 |
000014.SZA |
沙河实业股份有限公司 |
-0.4574 |
| 12 |
000016.SZA |
康佳集团股份有限公司 |
0.9001 |
| 13 |
000017.SZA |
深圳中华自行车(集团)股份有限公司 |
1.4668 |
| 14 |
000018.SZA |
神州长城股份有限公司 |
5.4350 |
| 15 |
000019.SZA |
深圳市深宝实业股份有限公司 |
-0.9659 |
| 16 |
000020.SZA |
深圳中恒华发股份有限公司 |
0.1317 |
| 17 |
000021.SZA |
深圳长城开发科技股份有限公司 |
2.1430 |
| 18 |
000022.SZA |
深圳赤湾港航股份有限公司 |
2.9044 |
| 19 |
000023.SZA |
深圳市天地(集团)股份有限公司 |
2.6827 |
| 20 |
000001.SZA |
平安银行股份有限公司 |
3.0319 |
| 21 |
000002.SZA |
万科企业股份有限公司 |
0.6116 |
| 22 |
000004.SZA |
深圳中国农大科技股份有限公司 |
-0.9797 |
| 23 |
000005.SZA |
深圳世纪星源股份有限公司 |
-0.7938 |
| 24 |
000006.SZA |
深圳市振业(集团)股份有限公司 |
2.0537 |
| 25 |
000007.SZA |
深圳市全新好股份有限公司 |
0.0747 |
| 26 |
000008.SZA |
神州高铁技术股份有限公司 |
0.1525 |
| 27 |
000009.SZA |
中国宝安集团股份有限公司 |
0.7437 |
| 28 |
000010.SZA |
深圳美丽生态股份有限公司 |
-1.1580 |
| 29 |
000011.SZA |
深圳市物业发展(集团)股份有限公司 |
11.7746 |
| ... |
... |
... |
... |
| 50 |
000012.SZA |
中国南玻集团股份有限公司 |
2.1545 |
| 51 |
000014.SZA |
沙河实业股份有限公司 |
-0.4574 |
| 52 |
000016.SZA |
康佳集团股份有限公司 |
0.9001 |
| 53 |
000017.SZA |
深圳中华自行车(集团)股份有限公司 |
1.4668 |
| 54 |
000018.SZA |
神州长城股份有限公司 |
5.4350 |
| 55 |
000019.SZA |
深圳市深宝实业股份有限公司 |
-0.9659 |
| 56 |
000020.SZA |
深圳中恒华发股份有限公司 |
0.1317 |
| 57 |
000021.SZA |
深圳长城开发科技股份有限公司 |
2.1430 |
| 58 |
000022.SZA |
深圳赤湾港航股份有限公司 |
2.9044 |
| 59 |
000023.SZA |
深圳市天地(集团)股份有限公司 |
2.6827 |
| 60 |
000001.SZA |
平安银行股份有限公司 |
3.0319 |
| 61 |
000002.SZA |
万科企业股份有限公司 |
0.6116 |
| 62 |
000004.SZA |
深圳中国农大科技股份有限公司 |
-0.9797 |
| 63 |
000005.SZA |
深圳世纪星源股份有限公司 |
-0.7938 |
| 64 |
000006.SZA |
深圳市振业(集团)股份有限公司 |
2.0537 |
| 65 |
000007.SZA |
深圳市全新好股份有限公司 |
0.0747 |
| 66 |
000008.SZA |
神州高铁技术股份有限公司 |
0.1525 |
| 67 |
000009.SZA |
中国宝安集团股份有限公司 |
0.7437 |
| 68 |
000010.SZA |
深圳美丽生态股份有限公司 |
-1.1580 |
| 69 |
000011.SZA |
深圳市物业发展(集团)股份有限公司 |
11.7746 |
| 70 |
000012.SZA |
中国南玻集团股份有限公司 |
2.1545 |
| 71 |
000014.SZA |
沙河实业股份有限公司 |
-0.4574 |
| 72 |
000016.SZA |
康佳集团股份有限公司 |
0.9001 |
| 73 |
000017.SZA |
深圳中华自行车(集团)股份有限公司 |
1.4668 |
| 74 |
000018.SZA |
神州长城股份有限公司 |
5.4350 |
| 75 |
000019.SZA |
深圳市深宝实业股份有限公司 |
-0.9659 |
| 76 |
000020.SZA |
深圳中恒华发股份有限公司 |
0.1317 |
| 77 |
000021.SZA |
深圳长城开发科技股份有限公司 |
2.1430 |
| 78 |
000022.SZA |
深圳赤湾港航股份有限公司 |
2.9044 |
| 79 |
000023.SZA |
深圳市天地(集团)股份有限公司 |
2.6827 |
80 rows × 3 columns
df.loc[:10, ['company_name', 'fs_roe']] #获取指定行列数据
|
company_name |
fs_roe |
| 0 |
平安银行股份有限公司 |
3.0319 |
| 1 |
万科企业股份有限公司 |
0.6116 |
| 2 |
深圳中国农大科技股份有限公司 |
-0.9797 |
| 3 |
深圳世纪星源股份有限公司 |
-0.7938 |
| 4 |
深圳市振业(集团)股份有限公司 |
2.0537 |
| 5 |
深圳市全新好股份有限公司 |
0.0747 |
| 6 |
神州高铁技术股份有限公司 |
0.1525 |
| 7 |
中国宝安集团股份有限公司 |
0.7437 |
| 8 |
深圳美丽生态股份有限公司 |
-1.1580 |
| 9 |
深圳市物业发展(集团)股份有限公司 |
11.7746 |
| 10 |
中国南玻集团股份有限公司 |
2.1545 |
df.iloc[:5,3:] #获取指定行列数据
|
company_name |
company_type |
fs_net_profit |
fs_roe |
| 0 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
| 1 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
| 2 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
| 3 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
| 4 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
4.更多行列操作¶
接下来采用以上所学,我们进行练习:
import numpy as np
df['open_int'] = np.nan #在数据表中新增一列"open_int",赋值为NaN(缺失值)
df.head() #查看数据集
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
NaN |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
NaN |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
NaN |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
NaN |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
NaN |
df['open_int'] = 999 #赋值999
df.head()
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
df['test'] = df.company_type == '民营企业' #判断
df.head(5)
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
test |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
False |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
False |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
True |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
True |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
False |
df.loc[df.company_type == '民营企业', 'test'] = '他是民营企业,税负真的不轻' #判断并赋值
df.loc[df.company_type != '民营企业', 'test'] = '不是民营企业,具体是啥还不知道' #判断并赋值
df.head()
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
test |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
不是民营企业,具体是啥还不知道 |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
他是民营企业,税负真的不轻 |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
他是民营企业,税负真的不轻 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
不是民营企业,具体是啥还不知道 |
df.loc[2:4, 'test'] = '我不听我不听' #选取特定行列,并赋值
df.head()
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
test |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
不是民营企业,具体是啥还不知道 |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
我不听我不听 |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
我不听我不听 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
我不听我不听 |
df.rename(columns={'test':'乱加的一列'}, inplace=True) #更改列名,并固化该操作
df.head()
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
不是民营企业,具体是啥还不知道 |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
我不听我不听 |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
我不听我不听 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
我不听我不听 |
df_test = df[:6] #取局部数据作练习
df_test.columns = ['列%s' % str(i) for i in range(1,len(df_test.columns)+1)] #更改所有的列名
df_test
|
列1 |
列2 |
列3 |
列4 |
列5 |
列6 |
列7 |
列8 |
列9 |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
不是民营企业,具体是啥还不知道 |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
我不听我不听 |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
我不听我不听 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
我不听我不听 |
| 5 |
000007.SZA |
2017-08-01 |
10004406 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
0.0747 |
999 |
他是民营企业,税负真的不轻 |
df_test.reindex(columns= ['列1','列2','列4','列12','列3','列5','列6','列8','列7','列9']) #重排列名
df_test
|
列1 |
列2 |
列3 |
列4 |
列5 |
列6 |
列7 |
列8 |
列9 |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
不是民营企业,具体是啥还不知道 |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
我不听我不听 |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
我不听我不听 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
我不听我不听 |
| 5 |
000007.SZA |
2017-08-01 |
10004406 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
0.0747 |
999 |
他是民营企业,税负真的不轻 |
df_test.reindex(index= [3,4,5,0,1,2]) #重排index
|
列1 |
列2 |
列3 |
列4 |
列5 |
列6 |
列7 |
列8 |
列9 |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
我不听我不听 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
我不听我不听 |
| 5 |
000007.SZA |
2017-08-01 |
10004406 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
0.0747 |
999 |
他是民营企业,税负真的不轻 |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
不是民营企业,具体是啥还不知道 |
| 2 |
000004.SZA |
2017-08-01 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
我不听我不听 |
5.行列删除¶
df_test.drop([2,5],axis=0) #删除行
|
列1 |
列2 |
列3 |
列4 |
列5 |
列6 |
列7 |
列8 |
列9 |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 1 |
000002.SZA |
2017-08-01 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
不是民营企业,具体是啥还不知道 |
| 3 |
000005.SZA |
2017-08-01 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
我不听我不听 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
我不听我不听 |
df_test.drop(['列1','列2'], axis=1) #删除列
|
列3 |
列4 |
列5 |
列6 |
列7 |
列8 |
列9 |
| 0 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 1 |
20952262 |
万科企业股份有限公司 |
公众企业 |
6.954116e+08 |
0.6116 |
999 |
不是民营企业,具体是啥还不知道 |
| 2 |
653388 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
我不听我不听 |
| 3 |
7343560 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
-0.7938 |
999 |
我不听我不听 |
| 4 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
我不听我不听 |
| 5 |
10004406 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
0.0747 |
999 |
他是民营企业,税负真的不轻 |
6.数据类型的转化¶
df['date'].sample(5) #查看数据
9 2017-08-01
35 2017-08-02
54 2017-08-03
23 2017-08-02
5 2017-08-01
Name: date, dtype: datetime64[ns]
print(type(df.date[0]))
df.date = df.date.map(lambda x: x.strftime('%Y-%m-%d')) #将时间数据转换为字符串。
print(type(df.date[0]))
<class 'pandas.tslib.Timestamp'>
<class 'str'>
7.数据过滤¶
df[df['fs_roe']>1].head() #选择fs_roe>10的数据,囿于篇幅,展示前几行
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
我不听我不听 |
| 9 |
000011.SZA |
2017-08-01 |
10230327 |
深圳市物业发展(集团)股份有限公司 |
地方国有企业 |
3.015978e+08 |
11.7746 |
999 |
不是民营企业,具体是啥还不知道 |
| 10 |
000012.SZA |
2017-08-01 |
15099069 |
中国南玻集团股份有限公司 |
公众企业 |
1.701309e+08 |
2.1545 |
999 |
不是民营企业,具体是啥还不知道 |
| 13 |
000017.SZA |
2017-08-01 |
2857907 |
深圳中华自行车(集团)股份有限公司 |
民营企业 |
2.123222e+05 |
1.4668 |
999 |
他是民营企业,税负真的不轻 |
df[(df['fs_roe']>1) & (df['fs_roe']<4)].head() #选择fs_roe在某区间的数据
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 4 |
000006.SZA |
2017-08-01 |
19458890 |
深圳市振业(集团)股份有限公司 |
地方国有企业 |
1.038588e+08 |
2.0537 |
999 |
我不听我不听 |
| 10 |
000012.SZA |
2017-08-01 |
15099069 |
中国南玻集团股份有限公司 |
公众企业 |
1.701309e+08 |
2.1545 |
999 |
不是民营企业,具体是啥还不知道 |
| 13 |
000017.SZA |
2017-08-01 |
2857907 |
深圳中华自行车(集团)股份有限公司 |
民营企业 |
2.123222e+05 |
1.4668 |
999 |
他是民营企业,税负真的不轻 |
| 17 |
000021.SZA |
2017-08-01 |
7955667 |
深圳长城开发科技股份有限公司 |
中央国有企业 |
1.167247e+08 |
2.1430 |
999 |
不是民营企业,具体是啥还不知道 |
df[(df['fs_roe']>1) & (df['company_type'] != '地方国有企业')].head() #选择满足多种条件的信息
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 0 |
000001.SZA |
2017-08-01 |
203570991 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999 |
不是民营企业,具体是啥还不知道 |
| 10 |
000012.SZA |
2017-08-01 |
15099069 |
中国南玻集团股份有限公司 |
公众企业 |
1.701309e+08 |
2.1545 |
999 |
不是民营企业,具体是啥还不知道 |
| 13 |
000017.SZA |
2017-08-01 |
2857907 |
深圳中华自行车(集团)股份有限公司 |
民营企业 |
2.123222e+05 |
1.4668 |
999 |
他是民营企业,税负真的不轻 |
| 14 |
000018.SZA |
2017-08-01 |
8572320 |
神州长城股份有限公司 |
民营企业 |
9.902958e+07 |
5.4350 |
999 |
他是民营企业,税负真的不轻 |
| 17 |
000021.SZA |
2017-08-01 |
7955667 |
深圳长城开发科技股份有限公司 |
中央国有企业 |
1.167247e+08 |
2.1430 |
999 |
不是民营企业,具体是啥还不知道 |
8.数据排序¶
df.sort_values(by='fs_roe').head() #按某条件排序,默认升序排列
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 28 |
000010.SZA |
2017-08-02 |
5410561 |
深圳美丽生态股份有限公司 |
民营企业 |
-2.550807e+07 |
-1.1580 |
999 |
他是民营企业,税负真的不轻 |
| 68 |
000010.SZA |
2017-08-04 |
5912089 |
深圳美丽生态股份有限公司 |
民营企业 |
-2.550807e+07 |
-1.1580 |
999 |
他是民营企业,税负真的不轻 |
| 8 |
000010.SZA |
2017-08-01 |
4519425 |
深圳美丽生态股份有限公司 |
民营企业 |
-2.550807e+07 |
-1.1580 |
999 |
他是民营企业,税负真的不轻 |
| 48 |
000010.SZA |
2017-08-03 |
4826822 |
深圳美丽生态股份有限公司 |
民营企业 |
-2.550807e+07 |
-1.1580 |
999 |
他是民营企业,税负真的不轻 |
| 62 |
000004.SZA |
2017-08-04 |
711022 |
深圳中国农大科技股份有限公司 |
民营企业 |
-1.177969e+06 |
-0.9797 |
999 |
他是民营企业,税负真的不轻 |
df.sort_values(by='fs_roe',ascending= False).head() #ascendig= False,按降序排列
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 69 |
000011.SZA |
2017-08-04 |
5736572 |
深圳市物业发展(集团)股份有限公司 |
地方国有企业 |
301597824.0 |
11.7746 |
999 |
不是民营企业,具体是啥还不知道 |
| 49 |
000011.SZA |
2017-08-03 |
7180287 |
深圳市物业发展(集团)股份有限公司 |
地方国有企业 |
301597824.0 |
11.7746 |
999 |
不是民营企业,具体是啥还不知道 |
| 29 |
000011.SZA |
2017-08-02 |
8782902 |
深圳市物业发展(集团)股份有限公司 |
地方国有企业 |
301597824.0 |
11.7746 |
999 |
不是民营企业,具体是啥还不知道 |
| 9 |
000011.SZA |
2017-08-01 |
10230327 |
深圳市物业发展(集团)股份有限公司 |
地方国有企业 |
301597824.0 |
11.7746 |
999 |
不是民营企业,具体是啥还不知道 |
| 14 |
000018.SZA |
2017-08-01 |
8572320 |
神州长城股份有限公司 |
民营企业 |
99029584.0 |
5.4350 |
999 |
他是民营企业,税负真的不轻 |
df.sort_values(by= ['fs_roe','fs_net_profit'],ascending= False).head() #多重指标排序
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 9 |
000011.SZA |
2017-08-01 |
10230327 |
深圳市物业发展(集团)股份有限公司 |
地方国有企业 |
301597824.0 |
11.7746 |
999 |
不是民营企业,具体是啥还不知道 |
| 29 |
000011.SZA |
2017-08-02 |
8782902 |
深圳市物业发展(集团)股份有限公司 |
地方国有企业 |
301597824.0 |
11.7746 |
999 |
不是民营企业,具体是啥还不知道 |
| 49 |
000011.SZA |
2017-08-03 |
7180287 |
深圳市物业发展(集团)股份有限公司 |
地方国有企业 |
301597824.0 |
11.7746 |
999 |
不是民营企业,具体是啥还不知道 |
| 69 |
000011.SZA |
2017-08-04 |
5736572 |
深圳市物业发展(集团)股份有限公司 |
地方国有企业 |
301597824.0 |
11.7746 |
999 |
不是民营企业,具体是啥还不知道 |
| 14 |
000018.SZA |
2017-08-01 |
8572320 |
神州长城股份有限公司 |
民营企业 |
99029584.0 |
5.4350 |
999 |
他是民营企业,税负真的不轻 |
9.数据的描述统计¶
以数据的'fs_roe'列为例,进行数据描述和统计
df['fs_roe'].mean() #计算平均数
1.5953049875795842
df['fs_roe'].idxmax() #返回最大值index
9
df.loc[df['fs_roe'].idxmin()] #定位到fs_roe最小的一列
instrument 000010.SZA
date 2017-08-01
volume 4519425
company_name 深圳美丽生态股份有限公司
company_type 民营企业
fs_net_profit -2.55081e+07
fs_roe -1.158
open_int 999
乱加的一列 他是民营企业,税负真的不轻
Name: 8, dtype: object
df.fs_net_profit.corr(df.volume) #求解相关系数
0.81501625795410615
df.company_type.unique() #查看不重复的数据
array(['公众企业', '民营企业', '地方国有企业', '中央国有企业'], dtype=object)
df.company_type.value_counts() #查看数据出现次数
民营企业 28
公众企业 24
地方国有企业 16
中央国有企业 12
Name: company_type, dtype: int64
10.处理缺失的数据¶
df_test = df.sample(5)
df_test.loc[df_test['fs_roe']<=1,'fs_roe'] = np.nan #条件赋值NaN
df_test.loc[66] = np.nan #行赋值NaN
df_test #练习数据集构造完成
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 23 |
000005.SZA |
2017-08-02 |
6313300.0 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 47 |
000009.SZA |
2017-08-03 |
69392114.0 |
中国宝安集团股份有限公司 |
公众企业 |
3.347200e+07 |
NaN |
999.0 |
不是民营企业,具体是啥还不知道 |
| 16 |
000020.SZA |
2017-08-01 |
0.0 |
深圳中恒华发股份有限公司 |
民营企业 |
4.211734e+05 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 5 |
000007.SZA |
2017-08-01 |
10004406.0 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 40 |
000001.SZA |
2017-08-03 |
98421938.0 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999.0 |
不是民营企业,具体是啥还不知道 |
| 66 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
df_test.dropna() #删去包含NaN值的行
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 40 |
000001.SZA |
2017-08-03 |
98421938.0 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999.0 |
不是民营企业,具体是啥还不知道 |
df_test.dropna(how= 'all',inplace= True) #删除全部为NaN的行,并使用'inplace=True'命令固化该删除操作。
df_test
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 23 |
000005.SZA |
2017-08-02 |
6313300.0 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 47 |
000009.SZA |
2017-08-03 |
69392114.0 |
中国宝安集团股份有限公司 |
公众企业 |
3.347200e+07 |
NaN |
999.0 |
不是民营企业,具体是啥还不知道 |
| 16 |
000020.SZA |
2017-08-01 |
0.0 |
深圳中恒华发股份有限公司 |
民营企业 |
4.211734e+05 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 5 |
000007.SZA |
2017-08-01 |
10004406.0 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 40 |
000001.SZA |
2017-08-03 |
98421938.0 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999.0 |
不是民营企业,具体是啥还不知道 |
df_test.dropna(axis= 1) #删除含有NaN值的列
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
open_int |
乱加的一列 |
| 23 |
000005.SZA |
2017-08-02 |
6313300.0 |
深圳世纪星源股份有限公司 |
民营企业 |
-1.014027e+07 |
999.0 |
他是民营企业,税负真的不轻 |
| 47 |
000009.SZA |
2017-08-03 |
69392114.0 |
中国宝安集团股份有限公司 |
公众企业 |
3.347200e+07 |
999.0 |
不是民营企业,具体是啥还不知道 |
| 16 |
000020.SZA |
2017-08-01 |
0.0 |
深圳中恒华发股份有限公司 |
民营企业 |
4.211734e+05 |
999.0 |
他是民营企业,税负真的不轻 |
| 5 |
000007.SZA |
2017-08-01 |
10004406.0 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
999.0 |
他是民营企业,税负真的不轻 |
| 40 |
000001.SZA |
2017-08-03 |
98421938.0 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
999.0 |
不是民营企业,具体是啥还不知道 |
在处理数据时,最好的方式不是删除数据,而是恰当地填充数据。 下面构造新的数据集,做示例操作。
df_test.loc[23] = np.nan
df_test.loc[[16,5],'volume'] = np.nan #构造练习数据集
df_test
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 23 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
| 47 |
000009.SZA |
2017-08-03 |
69392114.0 |
中国宝安集团股份有限公司 |
公众企业 |
3.347200e+07 |
NaN |
999.0 |
不是民营企业,具体是啥还不知道 |
| 16 |
000020.SZA |
2017-08-01 |
NaN |
深圳中恒华发股份有限公司 |
民营企业 |
4.211734e+05 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 5 |
000007.SZA |
2017-08-01 |
NaN |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 40 |
000001.SZA |
2017-08-03 |
98421938.0 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999.0 |
不是民营企业,具体是啥还不知道 |
| 49 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
df_test.fillna(0) #填充所有缺失数据为0
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 23 |
0 |
0 |
0.0 |
0 |
0 |
0.000000e+00 |
0.0000 |
0.0 |
0 |
| 47 |
000009.SZA |
2017-08-03 |
69392114.0 |
中国宝安集团股份有限公司 |
公众企业 |
3.347200e+07 |
0.0000 |
999.0 |
不是民营企业,具体是啥还不知道 |
| 16 |
000020.SZA |
2017-08-01 |
0.0 |
深圳中恒华发股份有限公司 |
民营企业 |
4.211734e+05 |
0.0000 |
999.0 |
他是民营企业,税负真的不轻 |
| 5 |
000007.SZA |
2017-08-01 |
0.0 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
0.0000 |
999.0 |
他是民营企业,税负真的不轻 |
| 40 |
000001.SZA |
2017-08-03 |
98421938.0 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999.0 |
不是民营企业,具体是啥还不知道 |
| 49 |
0 |
0 |
0.0 |
0 |
0 |
0.000000e+00 |
0.0000 |
0.0 |
0 |
df_test.fillna({'date':'1988-09-01','volume':'20000000'}) # 对不同列的缺失数据填充不同的值
|
instrument |
date |
volume |
company_name |
company_type |
fs_net_profit |
fs_roe |
open_int |
乱加的一列 |
| 23 |
NaN |
1988-09-01 |
20000000 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
| 47 |
000009.SZA |
2017-08-03 |
6.93921e+07 |
中国宝安集团股份有限公司 |
公众企业 |
3.347200e+07 |
NaN |
999.0 |
不是民营企业,具体是啥还不知道 |
| 16 |
000020.SZA |
2017-08-01 |
20000000 |
深圳中恒华发股份有限公司 |
民营企业 |
4.211734e+05 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 5 |
000007.SZA |
2017-08-01 |
20000000 |
深圳市全新好股份有限公司 |
民营企业 |
2.768926e+05 |
NaN |
999.0 |
他是民营企业,税负真的不轻 |
| 40 |
000001.SZA |
2017-08-03 |
9.84219e+07 |
平安银行股份有限公司 |
公众企业 |
6.214000e+09 |
3.0319 |
999.0 |
不是民营企业,具体是啥还不知道 |
| 49 |
NaN |
1988-09-01 |
20000000 |
NaN |
NaN |
NaN |
NaN |
NaN |
NaN |
df_test.volume.fillna(df_test.volume.mean()) #采用平均值填充
23 83907026.0
47 69392114.0
16 83907026.0
5 83907026.0
40 98421938.0
49 83907026.0
Name: volume, dtype: float64
df_test.volume.fillna(method= 'ffill') #向前填充('ffill')或者向后填充('bfill')
23 NaN
47 69392114.0
16 69392114.0
5 69392114.0
40 98421938.0
49 98421938.0
Name: volume, dtype: float64
df_test.volume.fillna(method= 'ffill',limit= 1) #限制向前或者向后填充行数
23 NaN
47 69392114.0
16 69392114.0
5 NaN
40 98421938.0
49 98421938.0
Name: volume, dtype: float64
11.数据保存¶
将清理后的数据保存在平台上:
df.to_csv('df_Pandaslearning') #保存数据
至此,Pandas中基础用法以基本介绍完毕,欢迎参照示例多多练习、运用。