将经过排序的熊猫数据帧迭代到groupby的过程非常慢。有其他选择吗?

时间:2019-06-14 17:49:09

标签: python pandas group-by

我想在我的熊猫数据框中执行自定义分组方式。我有以下数据框:

OwnerUserId  AnswerCount  CommentCount    Id             CreationDate
   3834.0          7.0               4    85  2009-06-28 11:31:29.417
      0.0          2.0               0   469  2009-06-29 07:46:13.990
  83871.0          3.0               2   918  2009-06-30 01:04:50.903
  77090.0          1.0               1  1094  2009-06-30 13:11:48.333
 130090.0          1.0               2  1208  2009-06-30 16:15:07.673
       ..          ..                ..    ..                      ..

对于每个“ Id_q”(问题),我想对问题的“ CreationDate”之前的“ OwnerUserId”所做的所有条目进行分组。 为了做到这一点,我对“ CreationDate”进行了排序,并对for循环中的每个条目执行groupby。下面提供了代码。但是,我有40K行,这使该操作非常慢。 有没有更快的方法可以做到这一点?

result_df = pd.DataFrame()
df = df.sort_values(["CreationDate"]) #sorting 
for i, row in df.iterrows():
    head_df = df.head(i)
    head_df = head_df[head_df.OwnerUserId == row.OwnerUserId]
    grouped_df = head_df.groupby('OwnerUserId', 
as_index=0).agg({'Id':"count",'CommentCount': "sum", 'AnswerCount': 'sum'})
    result_df = result_df.append(grouped_df)

我需要result_df作为输出。

0 个答案:

没有答案