Python - 如何按天对 Pandas DataFrame 进行分组?

我们将使用 .pandas DataFrame 对 Pandas DataFrame 进行分组groupby()。使用 grouper 功能选择要使用的列。对于下面显示的汽车销售记录示例,我们将按天分组并计算按天间隔的注册价格总和。

在groupby()grouper 方法中将频率设置为天数间隔,这意味着,如果频率为 7D,则表示数据按每月 7 天的间隔分组,直到日期列中给出的最后一个日期。

首先,假设以下是我们的三列 Pandas DataFrame -

import pandas as pd

# 其中一列为 Date_of_Purchase 的数据框

dataFrame = pd.DataFrame(

   {

      "Car": ["Audi", "Lexus", "Tesla", "Mercedes", "BMW", "Toyota", "Nissan", "Bentley", "Mustang"],

      "Date_of_Purchase": [

         pd.Timestamp("2021-06-10"),

         pd.Timestamp("2021-07-11"),

         pd.Timestamp("2021-06-25"),

         pd.Timestamp("2021-06-29"),

         pd.Timestamp("2021-03-20"),

         pd.Timestamp("2021-01-22"),

         pd.Timestamp("2021-01-06"),

         pd.Timestamp("2021-01-04"),

         pd.Timestamp("2021-05-09")

      ],

      "Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]

   }

)

接下来,使用 Grouper 在 groupby 函数中选择 Date_of_Purchase 列。频率设置为 7D,即 7 天的间隔分组到列中提到的最后一个日期 -

print"\nGroup Dataframe by 7 days...\n",dataFrame.groupby(pd.Grouper(key='Date_of_Purchase', axis=0, freq='7D')).sum()

示例

以下是代码 -

import pandas as pd

# 其中一列为 Date_of_Purchase 的数据框

dataFrame = pd.DataFrame(

   {

      "Car": ["Audi", "Lexus", "Tesla", "Mercedes", "BMW", "Toyota", "Nissan", "Bentley", "Mustang"],

      "Date_of_Purchase": [

         pd.Timestamp("2021-06-10"),

         pd.Timestamp("2021-07-11"),

         pd.Timestamp("2021-06-25"),

         pd.Timestamp("2021-06-29"),

         pd.Timestamp("2021-03-20"),

         pd.Timestamp("2021-01-22"),

         pd.Timestamp("2021-01-06"),

         pd.Timestamp("2021-01-04"),

         pd.Timestamp("2021-05-09")

       ],

       "Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]

    }

)

print"DataFrame...\n",dataFrame

# Grouper to select Date_of_Purchase column within groupby function

print("\nGroup Dataframe by 7 days...\n",dataFrame.groupby(pd.Grouper(key='Date_of_Purchase', axis=0, freq='7D')).sum()

)

输出结果

这将产生以下输出 -

DataFrame...

        Car    Date_of_Purchase   Reg_Price

0      Audi      2021-06-10          1000

1     Lexus      2021-07-11          1400

2     Tesla      2021-06-25          1100

3  Mercedes      2021-06-29           900

4       BMW      2021-03-20          1700

5    Toyota      2021-01-22          1800

6    Nissan      2021-01-06          1300

7   Bentley      2021-01-04          1150

8   Mustang      2021-05-09          1350

Group Dataframe by 7 days...

                  Reg_Price

Date_of_Purchase

2021-01-04         2450.0

2021-01-11            NaN

2021-01-18         1800.0

2021-01-25            NaN

2021-02-01            NaN

2021-02-08            NaN

2021-02-15            NaN

2021-02-22            NaN

2021-03-01            NaN

2021-03-08            NaN

2021-03-15         1700.0

2021-03-22            NaN

2021-03-29            NaN

2021-04-05            NaN

2021-04-12            NaN

2021-04-19            NaN

2021-04-26            NaN

2021-05-03         1350.0

2021-05-10            NaN

2021-05-17            NaN

2021-05-24            NaN

2021-05-31            NaN

2021-06-07         1000.0

2021-06-14            NaN

2021-06-21         1100.0

2021-06-28          900.0

2021-07-05         1400.0

以上是 Python - 如何按天对 Pandas DataFrame 进行分组? 的全部内容, 来源链接: utcz.com/z/343765.html

回到顶部