同期群分析中如何提取每行最后有效值对应的列名
解决同期群分析中添加用户最后活跃月份列的问题
你的核心需求是给每行用户添加记录最后活跃月份的列,之前的方法没成功,大概率是因为没指定axis=1参数——apply默认按列(axis=0)执行,而我们需要对每一行处理。
正确实现步骤:
- 先确认月份列是按时间从早到晚排序的(确保
last_valid_index返回的是最晚的活跃月份) - 执行以下代码生成
Last_month列:
users['Last_month'] = users.apply(pd.Series.last_valid_index, axis=1)
验证示例:
假设输入数据为:
| 2021-01-01 | 2021-02-01 |
|---|---|
| 3456 | NaN |
| NaN | 8679 |
执行代码后会得到预期输出:
| 2021-01-01 | 2021-02-01 | Last_month |
|---|---|---|
| 3456 | NaN | 2021-01-01 |
| NaN | 8679 | 2021-02-01 |
额外说明:
如果月份列顺序不是按时间排序,先通过users = users.reindex(sorted(users.columns), axis=1)重新排序列,确保时间从早到晚排列,这样last_valid_index才能准确返回最后活跃的月份。
内容的提问来源于stack exchange,提问作者Marg
相关产品推荐
相关产品推荐

