用Pandas读取MySQL数据库中某只股票100天的日交易数据,将查询结果返回DataFrame里的数据,直接保存到Excel文件,并绘制日收盘价格走势、5天移动平均线、10天移动平均线。
时间: 2023-12-10 11:37:12 浏览: 46
首先需要安装pymysql和pandas库。
可以使用以下代码安装:
```python
!pip install pymysql
!pip install pandas
```
接下来,可以使用以下代码连接到MySQL数据库,查询数据并保存到Excel文件中:
```python
import pandas as pd
import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', database='stock')
# 查询数据
sql = "SELECT * FROM stock_data WHERE symbol='000001' ORDER BY date DESC LIMIT 100"
df = pd.read_sql(sql, conn)
# 保存到Excel文件
df.to_excel('stock_data.xlsx', index=False)
# 关闭数据库连接
conn.close()
```
假设查询结果包含以下列:date, open, high, low, close, volume, symbol,其中date列是日期,close列是收盘价。
接下来,可以使用以下代码绘制日收盘价格走势、5天移动平均线、10天移动平均线:
```python
import matplotlib.pyplot as plt
# 绘制日收盘价格走势
plt.plot(df['date'], df['close'], label='Close')
# 计算5天移动平均线
df['MA5'] = df['close'].rolling(window=5).mean()
# 计算10天移动平均线
df['MA10'] = df['close'].rolling(window=10).mean()
# 绘制5天移动平均线
plt.plot(df['date'], df['MA5'], label='MA5')
# 绘制10天移动平均线
plt.plot(df['date'], df['MA10'], label='MA10')
# 设置图例并显示图像
plt.legend()
plt.show()
```
这样,就可以将MySQL数据库中某只股票100天的日交易数据读取到DataFrame中,并在Excel文件和图表中进行展示。