(1)用Pandas读取MySQL数据库中某只股票100天的日交易数据,将查询结果返回DataFrame里的数据,直接保存到Excel文件,并绘制日收盘价格走势、5天移动平均线、10天移动平均线。
时间: 2023-11-22 12:57:05 浏览: 164
pandas连接数据库,从数据库读取数据,将数据保存到数据库
首先需要安装pandas和matplotlib库,可以使用以下命令安装:
```
pip install pandas
pip install matplotlib
```
然后,可以按照以下步骤来读取MySQL数据库中的数据,并进行数据处理和可视化:
1. 连接MySQL数据库,读取数据
```python
import pandas as pd
import pymysql
# 建立数据库连接
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='stock')
# 读取数据到DataFrame
sql = "SELECT * FROM stock_daily WHERE code = '000001' LIMIT 100"
df = pd.read_sql(sql, conn)
# 关闭数据库连接
conn.close()
```
在上面的代码中,我们首先建立了一个数据库连接,然后使用pandas的`read_sql`函数将查询结果读取到DataFrame中,最后关闭了数据库连接。
2. 数据处理
```python
# 将日期列设置为索引
df = df.set_index('date')
# 计算移动平均线
df['ma5'] = df['close'].rolling(window=5).mean()
df['ma10'] = df['close'].rolling(window=10).mean()
```
在上面的代码中,我们将日期列设置为索引,方便后续的可视化操作。然后,使用`rolling`函数计算5天和10天的移动平均线,并将结果保存到`ma5`和`ma10`两列中。
3. 可视化
```python
import matplotlib.pyplot as plt
# 绘制走势图和移动平均线
plt.plot(df.index, df['close'], label='Close')
plt.plot(df.index, df['ma5'], label='MA5')
plt.plot(df.index, df['ma10'], label='MA10')
plt.legend(loc='upper left')
plt.show()
# 将数据保存到Excel文件
df.to_excel('000001.xlsx')
```
在上面的代码中,我们使用matplotlib库绘制了日收盘价格走势、5天移动平均线和10天移动平均线的图表,并将结果显示出来。同时,我们还使用pandas的`to_excel`函数将数据保存到Excel文件中。
完整代码如下:
阅读全文