我想在我的熊猫数据框中执行自定义分组方式。我有以下数据框:
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作为输出。