@wywy1995 大佬,看下这段代码
```
def get_hot_concept(dct, date):
# 计算出现涨停最多的概念
concept_count = {}
for key in dct:
for i in dct[key]['jq_concept']:
if i['concept_name'] in concept_count.keys():
concept_count[i['concept_name']] += 1
else:
if i['concept_name'] not in ['转融券标的', '融资融券', '深股通', '沪股通']:
concept_count[i['concept_name']] = 1
df = pd.DataFrame(list(concept_count.items()), columns=['concept_name','concept_count'])
df = df.set_index('concept_name')
df = df.sort_values(by='concept_count', ascending=False)
max_num = df.iloc[0,0]
df = df[df['concept_count'] == max_num]
concept = list(df.index)[0]
return concept
```
这里输出的hot concept数量为一,如果涨停最多的概念有多个,似乎不太合理,我把这个函数和筛选股票的函数都做了一下修改
```
def get_hot_concept(dct, date):
# 计算出现涨停最多的概念
concept_count = {}
for key in dct:
for i in dct[key]['jq_concept']:
if i['concept_name'] in concept_count.keys():
concept_count[i['concept_name']] += 1
else:
if i['concept_name'] not in ['转融券标的', '融资融券', '深股通', '沪股通']:
concept_count[i['concept_name']] = 1
df = pd.DataFrame(list(concept_count.items()), columns=['concept_name','concept_count'])
df = df.set_index('concept_name')
df = df.sort_values(by='concept_count', ascending=False)
max_num = df.iloc[0,0]
df = df[df['concept_count'] == max_num]
concept = list(df.index) #可能有多个
return concept
# 概念筛选
def filter_concept_stock(dct, concept):
tmp_set = set()
for k,v in dct.items():
for d in dct[k]['jq_concept']:
if d['concept_name'] in concept:#支持concept有多个的情况
tmp_set.add(k)
return list(tmp_set)
```
2023-12-01