You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于日期列获取Pandas DataFrame中用户最后短信日的首次操作信息

解决方案

步骤1:转换日期列(可选但推荐)

先将日期列转为datetime类型,确保日期比较逻辑准确:

df['sms_sent_date'] = pd.to_datetime(df['sms_sent_date'], format='%d-%m-%Y')
df['Action_date'] = pd.to_datetime(df['Action_date'], format='%d-%m-%Y')

步骤2:筛选每个用户最后短信日期的行

用groupby+transform获取每个用户的最大短信日期,然后过滤出对应行:

# 获取每个用户的最后短信发送日期
last_sms_date = df.groupby('Id')['sms_sent_date'].transform('max')
# 筛选出最后短信日期的所有行
filtered_df = df[df['sms_sent_date'] == last_sms_date]

步骤3:提取每个用户的首次操作记录

在筛选后的结果中,按Id分组并取每组的第一行(对应首次action_performed):

result = filtered_df.groupby('Id').first().reset_index()

完整代码

import pandas as pd

# 构造示例数据
data = {
    'Id': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
    'sms_sent_date': ['21-11-2021', '22-11-2021', '23-11-2021', '23-11-2021', '23-11-2021',
                      '11-12-2021', '12-12-2021', '12-12-2021', '12-12-2021'],
    'sms_number': [1, 2, 3, 3, 3, 1, 2, 2, 2],
    'Action_date': ['21-11-2021', '22-11-2021', '23-11-2021', '23-11-2021', '23-11-2021',
                    '11-12-2021', '12-12-2021', '12-12-2021', '12-12-2021'],
    'action_performed': ['opened', 'clicked', 'opened', 'proceeded', 'halted',
                         'opened', 'opened', 'clicked', 'succeded']
}
df = pd.DataFrame(data)

# 转换日期列
df['sms_sent_date'] = pd.to_datetime(df['sms_sent_date'], format='%d-%m-%Y')
df['Action_date'] = pd.to_datetime(df['Action_date'], format='%d-%m-%Y')

# 筛选最后短信日期的行
last_sms_date = df.groupby('Id')['sms_sent_date'].transform('max')
filtered_df = df[df['sms_sent_date'] == last_sms_date]

# 提取首次操作记录
result = filtered_df.groupby('Id').first().reset_index()

# 转换回原日期格式(可选)
result['sms_sent_date'] = result['sms_sent_date'].dt.strftime('%d-%m-%Y')
result['Action_date'] = result['Action_date'].dt.strftime('%d-%m-%Y')

print(result)

输出结果

Id sms_sent_date  sms_number Action_date action_performed
0  A    23-11-2021           3  23-11-2021            opened
1  B    12-12-2021           2  12-12-2021            opened

内容的提问来源于stack exchange,提问作者Roshankumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:45:42