下面是一个示例代码,来演示如何按日期分组选择最大值和相应的行ID:
import pandas as pd
# 创建示例数据
data = {'日期': ['2022-01-01', '2022-01-01', '2022-01-02', '2022-01-02', '2022-01-03'],
'数值': [10, 20, 15, 25, 30],
'行ID': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)
# 将日期列转换为datetime类型
df['日期'] = pd.to_datetime(df['日期'])
# 按日期分组,选择最大值和相应的行ID
result = df.groupby('日期').apply(lambda x: x.loc[x['数值'].idxmax()])
# 打印结果
print(result[['日期', '数值', '行ID']])
运行上述代码,将得到以下结果:
日期 数值 行ID
日期
2022-01-01 2022-01-01 20 2
2022-01-02 2022-01-02 25 4
2022-01-03 2022-01-03 30 5
这段代码首先将日期列转换为datetime类型,然后使用groupby
方法按日期进行分组。接着,使用apply
方法对每个分组进行操作,lambda
函数选择每个分组中数值列('数值')的最大值对应的行。最后,将结果打印出来,包括日期、数值和行ID。
上一篇:按日期分组选择一系列数字?
下一篇:按日期分组选择最多购买的客户。