本节为pandas进阶内容,核心还是DataFrame数据处理,注意包括缺失数据处理、函数的应用和映射、数据规整等。
第七节:pandas进阶
本节为pandas进阶内容,核心还是DataFrame数据处理,注意包括缺失数据处理、函数的应用和映射、数据规整等。
开始之前首先导入库:numpy和pandas
In [1]:
import pandas as pd
import numpy as np
一、缺失数据处理
还是获取MindGo平台的数据来演示:
In [4]:
# 获取招商银行近10个工作日的开盘价、最高价、最低价、收盘价。并将部分数据赋值为NAN,假设为缺失部分。
price= get_price('600036.SH', None, '20180125', '1d', ['open', 'high', 'low', 'close'], False, 'pre', 10, is_panel=1)
price[price > 34] = np.nan
price
Out[4]:
close | high | low | open | |
---|---|---|---|---|
2018-01-12 | 31.51 | 31.58 | 31.02 | 31.12 |
2018-01-15 | 31.94 | 32.40 | 31.30 | 31.48 |
2018-01-16 | 31.89 | 32.28 | 31.54 | 31.80 |
2018-01-17 | 31.69 | 33.11 | 31.50 | 32.10 |
2018-01-18 | 32.32 | 32.75 | 32.10 | 32.10 |
2018-01-19 | 32.46 | 33.35 | 32.21 | 32.66 |
2018-01-22 | 33.08 | 33.64 | 32.15 | 32.18 |
2018-01-23 | NaN | NaN | 33.20 | 33.20 |
2018-01-24 | 33.85 | NaN | 33.45 | NaN |
2018-01-25 | 33.41 | NaN | 32.90 | NaN |
1.去掉包含缺失值的行
In [6]:
price.dropna()
Out[6]:
close | high | low | open | |
---|---|---|---|---|
2018-01-12 | 31.51 | 31.58 | 31.02 | 31.12 |
2018-01-15 | 31.94 | 32.40 | 31.30 | 31.48 |
2018-01-16 | 31.89 | 32.28 | 31.54 | 31.80 |
2018-01-17 | 31.69 | 33.11 | 31.50 | 32.10 |
2018-01-18 | 32.32 | 32.75 | 32.10 | 32.10 |
2018-01-19 | 32.46 | 33.35 | 32.21 | 32.66 |
2018-01-22 | 33.08 | 33.64 | 32.15 | 32.18 |
2.对缺失值进行填充为30
In [7]:
price.fillna(value=30)
Out[7]:
close | high | low | open | |
---|---|---|---|---|
2018-01-12 | 31.51 | 31.58 | 31.02 | 31.12 |
2018-01-15 | 31.94 | 32.40 | 31.30 | 31.48 |
2018-01-16 | 31.89 | 32.28 | 31.54 | 31.80 |
2018-01-17 | 31.69 | 33.11 | 31.50 | 32.10 |
2018-01-18 | 32.32 | 32.75 | 32.10 | 32.10 |
2018-01-19 | 32.46 | 33.35 | 32.21 | 32.66 |
2018-01-22 | 33.08< |