用Pandas读取MySQL数据库中某只股票100天的日交易数据,将查询结果返回DataFrame里的数据,直接保存到Excel文件
时间: 2024-01-22 11:17:34 浏览: 30
可以按照以下步骤操作:
1. 导入需要的库:
```python
import pandas as pd
import pymysql
```
2. 连接MySQL数据库:
```python
# 建立连接
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
database='stock_db',
charset='utf8mb4'
)
```
其中,`host`、`user`、`password`、`database` 分别是 MySQL 数据库的主机名、用户名、密码和数据库名。`charset` 是指定字符集,一般使用 `utf8mb4`。
3. 查询数据并返回 DataFrame:
```python
# 查询语句
sql = "SELECT * FROM stock_data WHERE stock_code='000001' AND trade_date BETWEEN '20210101' AND '20210410'"
# 使用 Pandas 的 read_sql 函数查询并返回 DataFrame
df = pd.read_sql(sql, conn)
```
其中,`stock_data` 是表名,`stock_code` 是股票代码字段名,`trade_date` 是交易日期字段名。上述 SQL 语句查询的是股票代码为 `000001`,交易日期在 `20210101` 到 `20210410` 期间的数据。
4. 将 DataFrame 保存为 Excel 文件:
```python
# 保存到 Excel 文件
df.to_excel('stock_data.xlsx', index=False)
```
其中,`index=False` 表示不保存 DataFrame 的行索引。
完整代码如下:
```python
import pandas as pd
import pymysql
# 建立连接
conn = pymysql.connect(
host='localhost',
user='root',
password='password',
database='stock_db',
charset='utf8mb4'
)
# 查询语句
sql = "SELECT * FROM stock_data WHERE stock_code='000001' AND trade_date BETWEEN '20210101' AND '20210410'"
# 使用 Pandas 的 read_sql 函数查询并返回 DataFrame
df = pd.read_sql(sql, conn)
# 保存到 Excel 文件
df.to_excel('stock_data.xlsx', index=False)
# 关闭连接
conn.close()
```