【发布时间】:2022-01-02 02:12:24
【问题描述】:
所以我正在做一个时间序列/LSTM 作业,我有一个股票数据集:https://www.kaggle.com/camnugent/sandp500
问题是我需要按每家公司的名称将主数据框拆分为较小的数据框。有没有快速的方法来做到这一点?因为有几十个公司名称,我见过用iloc可以做到的,但是工作量太大了。
df = pd.read_csv('all_stocks_5yr.csv', parse_dates=['date'])
df['date'] = pd.to_datetime(df['date'])
grouped_df = df.groupby('Name')
这里可以看得更清楚:
如您所见,有不同名称的不同公司,我想要的是每个公司的数据框。非常感谢您的帮助
【问题讨论】:
-
您打算如何处理较小的数据帧?您可以尝试使用
.set_index(['Name', 'date']),然后.groupby('Name')应该会更快。 -
@athing 即使是索引列,您仍然可以按列分组。
-
@KevinRoche 是的,但是接下来他们需要更小的框架
-
@KevinRoche 您需要遍历 groupby obj 对吗?但它会使 Name index 已经有了,所以为什么要先设置索引
-
您的预期输出是什么?您的数据中有 505 家公司。例如,您不能只使用
sample = df[df["Name"].eq("AAPL")]访问您想要的任何公司吗?
标签: python pandas dataframe keras lstm