用Pandas读取MySQL数据库中某只股票100天的日交易数据,将查询结果返回DataFrame里的数据,直接保存到Excel文件,并绘制日收盘价格走势、5天移动平均线、10天移动平均线。
时间: 2023-12-10 10:41:41 浏览: 26
以下是实现该需求的代码,需要先安装pandas和matplotlib库:
```python
import pandas as pd
import matplotlib.pyplot as plt
from sqlalchemy import create_engine
# 连接MySQL数据库
engine = create_engine('mysql+pymysql://user:password@localhost:3306/database')
# 查询某只股票100天的日交易数据
sql = "SELECT date, close FROM stock_data WHERE code='000001' ORDER BY date DESC LIMIT 100"
df = pd.read_sql(sql, engine)
# 将结果保存到Excel文件
df.to_excel('stock_data.xlsx', index=False)
# 绘制日收盘价格走势、5天移动平均线、10天移动平均线
plt.plot(df['date'], df['close'], label='Close')
plt.plot(df['date'], df['close'].rolling(5).mean(), label='MA5')
plt.plot(df['date'], df['close'].rolling(10).mean(), label='MA10')
plt.legend()
plt.show()
```
注意要将其中的`user`、`password`和`database`替换为自己的MySQL数据库连接信息,以及`code`替换为需要查询的股票代码。另外,如果MySQL数据库中的日期字段不是datetime类型,需要在读取时指定`parse_dates=['date']`。