📅  最后修改于: 2023-12-03 15:38:49.586000             🧑  作者: Mango
在 pandas 中,我们可以使用 groupby
方法将数据集按照一定的规则分组,然后进行聚合操作。在本文中,我们将介绍如何根据 pandas 中的属性 id 找出最大和最小日期。
我们使用如下的数据集进行示例操作:
import pandas as pd
data = {
'id': [1, 2, 2, 3, 3, 3],
'date': ['2021-01-01', '2021-03-01', '2021-05-01', '2021-02-01', '2021-04-01', '2021-06-01']
}
df = pd.DataFrame(data)
print(df)
输出如下:
id date
0 1 2021-01-01
1 2 2021-03-01
2 2 2021-05-01
3 3 2021-02-01
4 3 2021-04-01
5 3 2021-06-01
数据集中有两个字段:id 和 date。id 代表数据的分类,date 代表数据的时间。现在我们将根据 id 分组,找出每组的最大和最小日期。
使用 groupby
方法进行分组操作:
groups = df.groupby('id')
以上代码将数据集按照 id 进行分组,生成一个 pandas.core.groupby.generic.DataFrameGroupBy
对象。
我们需要对每组数据进行聚合操作,找出每组的最大和最小日期。这里我们可以使用 agg
方法进行聚合操作:
result = groups.agg({'date': ['min', 'max']})
以上代码将对每组数据的 date
列执行最小值和最大值操作,生成一个新的数据集。输出如下:
date
min max
id
1 2021-01-01 2021-01-01
2 2021-03-01 2021-05-01
3 2021-02-01 2021-06-01
我们可以看到,输出的数据集中包含了每组数据的最小日期和最大日期。
import pandas as pd
data = {
'id': [1, 2, 2, 3, 3, 3],
'date': ['2021-01-01', '2021-03-01', '2021-05-01', '2021-02-01', '2021-04-01', '2021-06-01']
}
df = pd.DataFrame(data)
groups = df.groupby('id')
result = groups.agg({'date': ['min', 'max']})
print(result)
以上代码实现了根据 pandas 中的属性 id 找出最大和最小日期的操作。