DataFrameGroupBy对象到DataFrame

时间:2019-11-12 17:45:50

标签: python pandas pandas-groupby

我想将值分组到一个pandas.DataFrame中,然后将要保存的结果存储在另一个数据框中。

我有以下代码:

grouped = df.groupby("date")
grouped_df = DataFrame()
grouped_df["work_count"] = grouped["id"].count()
grouped_df["author_author"] = grouped["author_name"].nunique()
print(grouped_df)

有了它,我得到了:

            commit_count  authors_count
date                                   
2018-02-16             1              1
2018-02-23             2              1
2018-03-02             5              1
2018-03-30             1              1
2018-04-13             3              1
2018-06-15             2              1

我尝试使用indices来获取日期,就像这样:

grouped = df.groupby("date")
grouped_df = DataFrame()
grouped_df["date"] = grouped.indices
grouped_df["work_count"] = grouped["id"].count()
grouped_df["author_author"] = grouped["author_name"].nunique()
print(grouped_df)

有了它,我陷入了困境:

                 date    work_count   author_count
2018-02-16 2018-02-16             1              1
2018-02-23 2018-02-23             2              1
2018-03-02 2018-03-02             5              1
2018-03-30 2018-03-30             1              1
2018-04-13 2018-04-13             3              1
2018-06-15 2018-06-15             2              1

我也尝试过:

grouped = df.groupby("date", as_index=False)

但是我得到了

ValueError: Cannot set a frame with no defined index and a value that cannot be converted to a Series

此外,我想将日期保留为数据框中的一列,而我无法使用as_index=False来实现。

最后,我想从grouped_df中删除第一列。 我希望我的结果如下所示:

      date    work_count   author_count
2018-02-16             1              1
2018-02-23             2              1
2018-03-02             5              1
2018-03-30             1              1
2018-04-13             3              1
2018-06-15             2              1

1 个答案:

答案 0 :(得分:-1)

grouped = df.groupby(“ date”,as_index = False).reset_index()