如何拆分pandas含元组的列并按交易所提取对应股票代码列表
解决方法
首先明确问题根源:你第二列的每个元素是元组类型,不是带括号的字符串,所以调用字符串的strip方法才会返回NaN。
步骤1:拆分元组列为独立列
运行以下代码即可得到你需要的规整DataFrame:
import pandas as pd # 将元组列拆分为两个独立列 df_companies[['Company symbol', 'Company exchange']] = pd.DataFrame( df_companies[('Company symbol', 'Company exchange')].tolist(), index=df_companies.index ) # 删除冗余的原始元组列 df_companies = df_companies.drop(columns=[('Company symbol', 'Company exchange')])
运行后df_companies就会是你要求的三列结构。
步骤2:按交易所生成股票代码列表
直接用groupby聚合即可:
# 生成{交易所: 股票代码列表}的字典 exchange_ticker_map = df_companies.groupby('Company exchange')['Company symbol'].apply(list).to_dict() # 直接赋值为对应变量 NYQ = exchange_ticker_map['NYQ'] AMS = exchange_ticker_map['AMS']
输出验证:
print(NYQ) # 输出 ['ABT', 'ABBV'] print(AMS) # 输出 ['ASML.AS', 'AD.AS']
内容的提问来源于stack exchange,提问作者R_L2021
相关产品推荐
相关产品推荐

