(1)用Pandas读取MySQL数据库中某只股票100天的日交易数据,将查询结果返回DataFrame里的数据,直接保存到Excel文件,并绘制日收盘价格走势、5天移动平均线、10天移动平均线。
时间: 2023-11-28 17:47:40 浏览: 118
以下是代码实现,需要安装pandas、mysql-connector、matplotlib等库:
```python
import pandas as pd
import mysql.connector
import matplotlib.pyplot as plt
# 连接MySQL数据库
db = mysql.connector.connect(
host="localhost",
user="root",
password="123456",
database="stock"
)
# 查询100天的日交易数据
cursor = db.cursor()
cursor.execute("SELECT date, close_price FROM stock_data WHERE stock_code='000001' ORDER BY date DESC LIMIT 100")
data = cursor.fetchall()
# 将查询结果转为DataFrame
df = pd.DataFrame(data, columns=["date", "close_price"])
df["date"] = pd.to_datetime(df["date"]) # 将日期列转为日期类型
df = df.set_index("date") # 将日期列设为索引
# 计算移动平均线
df["ma5"] = df["close_price"].rolling(5).mean()
df["ma10"] = df["close_price"].rolling(10).mean()
# 将数据保存到Excel文件
df.to_excel("stock_data.xlsx")
# 绘制走势图和移动平均线
plt.plot(df.index, df["close_price"], label="Close Price")
plt.plot(df.index, df["ma5"], label="MA5")
plt.plot(df.index, df["ma10"], label="MA10")
plt.legend()
plt.show()
```
其中,需要根据自己的MySQL数据库配置修改host、user、password和database参数,以及查询语句中的股票代码和查询天数。运行后会生成一个名为stock_data.xlsx的Excel文件,并在窗口中显示走势图和移动平均线。
阅读全文