Python学习:M1系统上如何使用pandas

问题

目前为止,M1系统上还不能使用pip3安装pandas库,无法使用pandas进行数据分析和处理。虽然网上也有专门适配M1的python环境,但实施起来也比较麻烦,不够纯粹。

那在M1上,如何使用pandas

方案

docker新版本已经支持M1了,我们不妨尝试一下,是否可以用vscode+docker使用pandas

1.安装M1版本的docker

访问https://docs.docker.com/docker-for-mac/install/,下载M1版本的docker。

M1-Docker

2.安装python镜像

  • 查找python镜像,
sudo docker search python
  • 运行python镜像:
sudo docker pull python
  • 执行python镜像
# 使用命令,主要可以共享宿主机目录,文件直接存在宿主机上,避免文件丢失
docker run --name=python-dev -it -v /data:/data python:latest /bin/bash

这样执行过一次,后续就可以通过docker的界面启动python容器了。
docker可视化管理

备注:可以直接通过docker界面来执行容器,设置共享路径参数:Docker Run的界面

进入docker后,可以直接使用

pip3 install pandas
pip3 list pandas | grep pandas
pip3 list | grep pandas
pandas              1.2.4

python的docker效果图:
python的docker

3.vscode开发环境

  • 安装vscode(略)
  • 安装python插件(略)
  • 安装docker插件(略)

4.docker上开发

cmd+shift+p,选择python镜像的docker上。

挂接到docker容器

运行效果如下:
vscode+docker

总结

上述M1上的python镜像,还可以安装jupyter,在vscode同样可以启动jupyter。直接可以操作pandas
jupyter+pandas

随着越来越多的软件适配了M1,M1不再是只适合娱乐的机器了。enjoy!!!

小白量化学习-自创指标设计 一、准备工作 1、首先把“HP_formula.py”文件复制到自己的工程目录中。 2、在新文件开始增加下面4条语句。 import numpy as np import pandas as pd from HP_formula import * import tushare as ts 二、对数据预处理 我们采用与tushare旧股票数据格式。 #首先要对数据预处理 df = ts.get_k_data('600080',ktype='D') mydf=df.copy() CLOSE=mydf['close'] LOW=mydf['low'] HIGH=mydf['high'] OPEN=mydf['open'] VOL=mydf['volume'] C=mydf['close'] L=mydf['low'] H=mydf['high'] O=mydf['open'] V=mydf['volume'] 三、仿通达信或大智慧公式 通达信公式转为python公式的过程。 1.‘:=’为赋值语句,用程序替换‘:=’为python的赋值命令‘='。 2.‘:’为公式的赋值带输出画线命令,再替换‘:’为‘=’,‘:’前为输出变量,顺序写到return 返回参数中。 3.全部命令转为英文大写。 4.删除绘图格式命令。 5.删除掉每行未分号; 。 6.参数可写到函数参数表中.例如: def KDJ(N=9, M1=3, M2=3): 例如通达信 KDJ指标公式描述如下。 参数表 N:=9, M1:=3, M2:=3 RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); J:3*K-2*D; # Python的KDJ公式 def KDJ(N=9, M1=3, M2=3): RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100 K = SMA(RSV,M1,1) D = SMA(K,M2,1) J = 3*K-2*D return K, D, J #----------------------------------- #根据面原理,我们把大智慧RSI指标改 # 为Python代码,如下。 def RSI(N1=6, N2=12, N3=24): """ RSI 相对强弱指标 """ LC = REF(CLOSE, 1) RSI1 = SMA(MAX(CLOSE - LC, 0), N1, 1) / SMA(ABS(CLOSE - LC), N1, 1) * 100 RSI2 = SMA(MAX(CLOSE - LC, 0), N2, 1) / SMA(ABS(CLOSE - LC), N2, 1) * 100 RSI3 = SMA(MAX(CLOSE - LC, 0), N3, 1) / SMA(ABS(CLOSE - LC), N3, 1) * 100 return RSI1, RSI2, RSI3 四、使用公式并绘图 #假定我们使用RSI指标 r1,r2,r3=RSI() mydf = mydf.join(pd.Series( r1,name='RSI1')) mydf = mydf.join(pd.Series( r2,name='RSI2')) mydf = mydf.join(pd.Series( r3,name='RSI3')) mydf['S80']=80 #增加轨80轨迹线 mydf['X20']=20 #增加下轨20轨迹线 mydf=mydf.tail(100) #显示最后100条数据线 #下面是绘线语句 mydf.S80.plot.line() mydf.X20.plot.line() mydf.RSI1.plot.line(legend=True) mydf.RSI2.plot.line(legend=True) mydf.RSI2.plot.line(legend=True) 不懂就看我的博客 https://blog.csdn.net/hepu8/article/details/93378543
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页