1 回答
TA贡献1829条经验 获得超7个赞
试试这个,合并 2 个数据帧,将标签转换为列表,添加范围过滤器,groupby 符号并将所有标签连接在一起,每个符号为 1 个列表,然后使用Counterfromcollections对列表中的每个元素进行计数:
from collections import Counter
df2['Label'] = df2['Label'].str.split(',')
df = pd.merge(df1, df2, on=['Notation'])
df = df[(df['RFRange']>df['RFMin']) & (df['RFRange']<df['RFMax'])]
df = df.groupby(by='Notation', as_index=False).agg({'Label': 'sum'})
df['counts'] = df['Label'].apply(lambda x: Counter(x))
print(df)
Notation Label counts
0 AA100 [AG, IF, AG, TE, WW, AG, TE, WW, Unknown, Unkn... {'AG': 3, 'IF': 1, 'TE': 2, 'WW': 2, 'Unknown'...
1 BB200 [DT, MH, WE, DT, MH, WE, DT, MH, WE, DT, MH, W... {'DT': 5, 'MH': 5, 'WE': 5, 'Unknown': 3}
添加回答
举报
