baostock加pandas取股票60分钟数据计算出180分钟K线存入数据库
时间: 2023-08-13 21:03:08 浏览: 190
pandas连接数据库,从数据库读取数据,将数据保存到数据库
首先,你需要安装 baostock 和 pandas 这两个库。可以使用以下命令进行安装:
```
pip install baostock pandas
```
接下来,你需要编写代码来从 baostock 获取股票数据,并用 pandas 来计算 180 分钟 K 线并将结果存入数据库。下面是一个示例代码:
```python
import baostock as bs
import pandas as pd
import sqlite3
# 登录 baostock
lg = bs.login()
# 设置股票代码和日期范围
code = 'sh.600000'
start_date = '2021-01-01'
end_date = '2021-06-30'
# 获取股票数据
rs = bs.query_history_k_data_plus(code,
"date,time,open,high,low,close,volume",
start_date=start_date,
end_date=end_date,
frequency="60",
adjustflag="2")
# 将数据转换成 pandas DataFrame
data_df = pd.DataFrame(rs.get_data())
# 将时间列合并成一个 datetime 列
data_df['datetime'] = pd.to_datetime(data_df['date'] + ' ' + data_df['time'])
data_df = data_df.set_index('datetime')
# 计算 180 分钟 K 线
ohlc_dict = {'open': 'first', 'high': 'max', 'low': 'min', 'close': 'last', 'volume': 'sum'}
resampled_df = data_df.resample('180T').apply(ohlc_dict)
# 将结果存入数据库
conn = sqlite3.connect('stock_data.db')
resampled_df.to_sql(code, conn, if_exists='replace')
# 登出 baostock
bs.logout()
```
在上面的代码中,我们首先使用 baostock 获取指定股票在指定日期范围内的 60 分钟 K 线数据。然后,我们将时间列合并成一个 datetime 列,并将其设置为 DataFrame 的索引。接下来,我们使用 pandas 的 resample 函数来计算 180 分钟 K 线,并将结果存入 SQLite 数据库中。最后,我们登出 baostock。
请注意,这只是一个示例代码,你需要根据自己的需求进行修改。例如,你可能需要更改股票代码、日期范围、存储方式等。
阅读全文