数据来源:和鲸社区-Numpy+Pandas数据处理·第四关
主要内容:
- 缺失数据
- 查看每列 数据的缺失情况
- 输出每列具体缺失的行数
- 删除所有存在缺失值的行
- 绘制折线图
- 收盘价折线图
- 收盘价开盘价折线图
- 收盘价5日均线,20日均线图
- 收盘价上轨线,中轨线,下轨线折线图
- 绘制密度图
- 删除换手率为非数字的行
- 绘制换手率密度图
- 同时绘制密度图和直方图
- pandas窗口函数rolling 和expanding
- 重采样 resample
- 计算相邻两天的差值和变化率
- 数据前移后移shift()
导入数据
import pandas as pd
data = pd.read_excel('/home/mw/input/pandas1206855/600000.SH.xls')
data.head()
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 329 entries, 0 to 328
Data columns (total 18 columns):
代码 328 non-null object
简称 327 non-null object
日期 327 non-null datetime64[ns]
前收盘价(元) 327 non-null float64
开盘价(元) 327 non-null float64
最高价(元) 327 non-null float64
最低价(元) 327 non-null float64
收盘价(元) 327 non-null float64
成交量(股) 327 non-null object
成交金额(元) 327 non-null object
涨跌(元) 327 non-null float64
涨跌幅(%) 327 non-null float64
均价(元) 327 non-null object
换手率(%) 327 non-null object
A股流通市值(元) 327 non-null float64
总市值(元) 327 non-null float64
A股流通股本(股) 327 non-null float64
市盈率 327 non-null float64
dtypes: datetime64[ns](1), float64(11), object(6)
memory usage: 46.3+ KB
缺失值处理
# 查看每列数据缺失情况
data.isnull().sum()
# 提取日期列含有空值的行
data[data['日期'].isnull()]
#输出每列缺失值具体行数
for columnname in data.columns:
if data[columnname].count() != len(data):
loc = data[columnname][data[columnname].isnull().values == True].index.tolist()
print('列名:"{}",第{}行位置有缺失值'.format(columnname,loc))
# 删除所有存在缺失值的行
data.dropna(axis=0,how='any',inplace=True)
语法:
df.dropna(axis=0, how='any', thresh