Traceback (most recent call last): File "C:\Users\MAC\Desktop\py\筛选股票\121.py", line 9, in <module> today = datetime.date.today().strftime('%Y-%m-%d') AttributeError: 'method_descriptor' object has no attribute 'today'
时间: 2023-10-07 22:09:11 浏览: 126
这个错误通常是因为 `datetime.today()` 和 `datetime.date.today()` 这两个方法名重复导致的。可以尝试使用完整的模块名来调用 `today()` 方法,即将 `datetime.date.today()` 替换为 `datetime.datetime.today().date()`。修改后的代码如下:
```python
import tushare as ts
import pandas as pd
import datetime
# 设置tushare token
ts.set_token('your_token_here')
# 获取今日日期
today = datetime.datetime.today().date().strftime('%Y-%m-%d')
# 获取今日及今日前四个交易日的日期
days = [datetime.datetime.today().date() - datetime.timedelta(days=i) for i in range(5)]
dates = [d.strftime('%Y-%m-%d') for d in days]
# 获取沪市、深市、创业板、科创板股票数据
data = pd.DataFrame()
for date in dates:
hs_data = ts.get_hist_data('sh', date=date)
if hs_data is not None:
hs_data['type'] = 'sh'
data = data.append(hs_data)
sz_data = ts.get_hist_data('sz', date=date)
if sz_data is not None:
sz_data['type'] = 'sz'
data = data.append(sz_data)
cyb_data = ts.get_hist_data('cyb', date=date)
if cyb_data is not None:
cyb_data['type'] = 'cyb'
data = data.append(cyb_data)
kcb_data = ts.get_hist_data('kcb', date=date)
if kcb_data is not None:
kcb_data['type'] = 'kcb'
data = data.append(kcb_data)
# 保存数据
data.to_csv(f'{today}_data.csv', index=False)
# 读取数据
data = pd.read_csv(f'{today}_data.csv')
# 筛选出五日内每日成交额最多的100支股票
top100 = data.groupby(['code'])['amount'].sum().sort_values(ascending=False)[:100].index.tolist()
data = data[data['code'].isin(top100)]
# 计算股票今日及前四个交易日收盘价的均价
data['close_mean'] = data.groupby(['code'])['close'].transform(lambda x: x.mean())
# 选出今日收盘价大于五日均价且今日成交量为三日内最少的股票
data = data[data['close'] > data['close_mean']]
data = data.groupby(['code']).apply(lambda x: x.nsmallest(3, 'volume'))
data = data.groupby(['code']).apply(lambda x: x.nlargest(1, 'date'))
data = data.reset_index(drop=True)
# 保存结果到文件
data.to_csv(f'{today}_result.csv', index=False)
```
希望能解决你的问题。
阅读全文
相关推荐


















