1、用Pandas读取MySQL数据库中,某只股票100天的日交易数据,将查询结果返回的DataFrame里的数据,直接保存到Excel文件中,并绘制日收盘价格走势、5天移动均线、10天移动均线。(trDay表构建方法及数据见附件)
时间: 2024-03-21 21:40:48 浏览: 95
好的,这是一个关于使用 Pandas 读取 MySQL 数据库中股票交易数据,保存到 Excel 文件中,并绘制价格走势、移动均线的问题。为了解决这个问题,我们可以按照以下步骤进行:
1. 首先,我们需要安装 Pandas 和 MySQL 连接库。可以使用以下命令进行安装:
```python
!pip install pandas
!pip install pymysql
```
2. 然后,我们需要连接 MySQL 数据库,读取数据并将其转换为 Pandas 的 DataFrame。可以使用以下代码进行连接和查询:
```python
import pandas as pd
import pymysql
# 连接MySQL数据库
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='password',
db='test'
)
# 读取数据并转换为DataFrame
sql = "SELECT * FROM trDay WHERE stkcd='000001' LIMIT 100"
df = pd.read_sql(sql, conn)
```
这里我们选择了100天内的股票交易数据,股票代码为000001。请根据实际情况修改 SQL 查询语句。
3. 接下来,我们可以将 DataFrame 直接保存为 Excel 文件。可以使用以下代码进行保存:
```python
# 将DataFrame保存为Excel文件
df.to_excel('stock_data.xlsx', index=False)
```
这里我们将文件保存为 stock_data.xlsx,不包含行索引。
4. 最后,我们可以使用 Matplotlib 绘制日收盘价格走势、5天移动均线、10天移动均线。可以使用以下代码进行绘制:
```python
import matplotlib.pyplot as plt
# 绘制收盘价走势
plt.plot(df['trdDt'], df['clsprc'], label='Close')
# 计算5天均线并绘制
ma5 = df['clsprc'].rolling(window=5).mean()
plt.plot(df['trdDt'], ma5, label='MA5')
# 计算10天均线并绘制
ma10 = df['clsprc'].rolling(window=10).mean()
plt.plot(df['trdDt'], ma10, label='MA10')
# 设置图例和标题
plt.legend()
plt.title('Stock Price Trend')
# 显示图形
plt.show()
```
这里我们使用了 Pandas 的 rolling 函数计算移动均线,然后使用 Matplotlib 绘制。可以根据需求修改移动均线的天数和图形的样式。
完整代码如下:
阅读全文
相关推荐














