pandas 处理股票数据常见方法

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()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值