你遇到的错误表明 yfinance
无法正确获取中国的股票数据,这是因为一些中国股票数据在 Yahoo Finance 上可能不可用或已被移除。为了处理这个问题,你可以使用其他的数据源,如 Tushare,这是一个免费的中国股票数据 API。
使用 Tushare 获取中国股票数据
安装 Tushare
首先,你需要安装 Tushare。你可以通过以下命令安装:
pip install tushare
获取数据
使用 Tushare 获取股票数据,并进行处理。以下是获取并处理数据的代码示例:
import tushare as ts import pandas as pd # 设置 Tushare 的 token ts.set_token('your_tushare_token') pro = ts.pro_api() # 获取股票代码为 601088 的股票数据 stock_code = '601088.SH' # 定义要获取的年份 years = ['2019', '2020', '2021', '2022', '2023'] # 初始化空的 DataFrame all_data = pd.DataFrame() # 获取每年3月的股票数据 for year in years: start_date = f'{year}0301' end_date = f'{year}0331' data = pro.daily(ts_code=stock_code, start_date=start_date, end_date=end_date) all_data = pd.concat([all_data, data]) # 转换日期列为日期格式 all_data['trade_date'] = pd.to_datetime(all_data['trade_date']) # 按年份分组并计算3月的均值、最小值和最大值 all_data['Year'] = all_data['trade_date'].dt.year march_summary = all_data.groupby('Year')['close'].agg(['mean', 'min', 'max']).reset_index() march_summary.columns = ['Year', 'Mean_Close', 'Min_Close', 'Max_Close'] print(march_summary)
获取 Tushare Token
你需要在 Tushare 官网注册一个账户,并获取一个 API Token。以下是获取 Token 的步骤:
- 前往 Tushare官网,注册一个新账户。
- 登录账户后,在用户中心可以找到你的 API Token。
完整示例代码
确保你已经设置了正确的 Tushare Token,并使用以下完整代码示例:
import tushare as ts
import pandas as pd
# 设置 Tushare 的 token
ts.set_token('your_tushare_token')
pro = ts.pro_api()
# 获取股票代码为 601088 的股票数据
stock_code = '601088.SH'
# 定义要获取的年份
years = ['2019', '2020', '2021', '2022', '2023']
# 初始化空的 DataFrame
all_data = pd.DataFrame()
# 获取每年3月的股票数据
for year in years:
start_date = f'{year}0301'
end_date = f'{year}0331'
data = pro.daily(ts_code=stock_code, start_date=start_date, end_date=end_date)
all_data = pd.concat([all_data, data])
# 转换日期列为日期格式
all_data['trade_date'] = pd.to_datetime(all_data['trade_date'])
# 按年份分组并计算3月的均值、最小值和最大值
all_data['Year'] = all_data['trade_date'].dt.year
march_summary = all_data.groupby('Year')['close'].agg(['mean', 'min', 'max']).reset_index()
march_summary.columns = ['Year', 'Mean_Close', 'Min_Close', 'Max_Close']
print(march_summary)