用Pandas读取MySQL数据库中某只股票100天的日交易数据,将查询结果返回DataFrame里的数据,直接保存到Excel文件,并绘制日收盘价格走势、5天移动平均线、10天移动平均线。
时间: 2023-12-10 20:37:50 浏览: 36
首先需要安装pandas和pymysql库:
```
pip install pandas
pip install pymysql
```
接下来,可以使用以下代码实现上述需求:
```python
import pandas as pd
import pymysql
import matplotlib.pyplot as plt
# 连接MySQL数据库
conn = pymysql.connect(host='localhost', user='root', password='password', db='dbname')
cursor = conn.cursor()
# 查询某只股票100天的日交易数据
sql = "SELECT * FROM stock_data WHERE stock_code='000001' LIMIT 100"
cursor.execute(sql)
results = cursor.fetchall()
# 将查询结果转换为DataFrame
df = pd.DataFrame(list(results), columns=['stock_code', 'date', 'open_price', 'high_price', 'low_price', 'close_price', 'volume'])
# 将DataFrame保存到Excel文件
df.to_excel('stock_data.xlsx', index=False)
# 绘制日收盘价格走势、5天移动平均线、10天移动平均线
plt.plot(df['date'], df['close_price'], label='Close Price')
plt.plot(df['date'], df['close_price'].rolling(5).mean(), label='5-day Moving Average')
plt.plot(df['date'], df['close_price'].rolling(10).mean(), label='10-day Moving Average')
plt.legend()
plt.show()
# 关闭数据库连接
cursor.close()
conn.close()
```
需要根据实际情况替换host、user、password、db和sql等参数。
阅读全文