1、 标准开头
import pandas as pd
import matplotlib.pyplot as plt
pd.set_option('display.max_columns', 50)
df=pd.read_excel(r'C:\Users')
print(df.head(5))
2、设置索引列
# 设置日期为索引列
df=df.set_index('日期')
3、打印缺失值的统计数据
print(df.isnull().sum())
4、代码列含有空值的整列
print(df[df['代码'].isnull()])
5、输出每列缺失值的具体行数
for cols_name in df.columns:
if df[cols_name].count()!=len(df):
loc=df[cols_name][df[cols_name].isnull().values==True].index.tolist()
print(f'{cols_name}列第{loc}行有缺失值')
6、删除所有存在缺失值的行
df_new=df.dropna(axis=0,how='any')
print(df_new)
#删除所有开盘价为非数字的行
list_new=[]
for i in range(len(df)):
if type(df.iloc[i,3]) != float:
list_new.append(i)
df.drop(labels=list_new,inplace=True)
7、计算后一日收盘价和前一日的变化
差值用diff,变化率用pct_change,返回一个series
df['收盘价(元)'].diff()
df['收盘价(元)'].pct_change()
# 取连续5个数的均值(5日均线)\求和
df['收盘价(元)'].rolling(5).mean()
df['收盘价(元)'].rolling(5).sum()
8、按周为采样规则,取一周的最大值
df=df['收盘价(元)'].resample('W').max()
9、将数据向前或向后移动5位
df=df.shift(2)
#负数表示向前移动
10、expanding
与滚动窗口的不同之处在于,扩展窗口的每个窗口都是基于当前行及其之前的所有行。
df1=df['收盘价(元)'].expanding(min_periods=1).mean()
11、作图
#3条线在一个图上
df['收盘价(元)'].rolling(5).mean().plot()
df['收盘价(元)'].rolling(5).sum().plot()
df['收盘价(元)'].plot()
plt.show()