如何将S&P500股票CSV dataframe按公司名拆分后存入字典
实现方案
你原有代码存在两处可修正的问题:
- 遍历pandas
groupby对象时,每次迭代返回的是(组名, 对应分组DataFrame)的二元组,不能直接用迭代元素作为下标取分组内容 to_dict是pandas内置方法,需要加括号调用,且要提前初始化空字典存储所有公司的对应数据
完整可运行代码
import pandas as pd # 读取数据,parse_dates参数已经可以完成日期格式转换,无需重复执行to_datetime dataframe = pd.read_csv('all_stocks_5yr.csv', parse_dates=['date']) # 初始化存储结果的空字典 company_data_dict = {} # 遍历分组后的对象 for company_name, group_df in dataframe.groupby('Name'): # 键设为公司名称,值为对应公司的数据集 # 如果你需要保留DataFrame格式做后续数据处理,直接赋值group_df即可 # company_data_dict[company_name] = group_df # 如果你需要转为标准字典格式,调用to_dict方法,records参数会返回行维度的字典列表 company_data_dict[company_name] = group_df.to_dict('records')
补充说明
如果做LSTM时间序列训练,建议优先选择保留DataFrame格式存储,后续做滑窗构造特征、归一化等操作会更方便。
内容的提问来源于stack exchange,提问作者eneko valero
相关产品推荐
相关产品推荐

