如何在Pandas中检测每个唯一ID对应最后一列从0到1的数值变化
问题:识别用户关注状态从0到1的转换记录
数据集示例
这里是我们处理的结构化数据样本(逗号分隔,无表头):
180762508,1268510763,374723980,293,20180402035748,198,25,1,1 180762508,1268503685,374717256,307,20180402035758,225,38,1,1 180762508,1268492506,374708540,236,20180402035808,222,52,1,1 180762508,1268485868,374697563,248,20180402035818,197,47,1,1 180762508,1268482430,374688520,272,20180402035828,196,31,1,1 180707764,1270608366,374988433,246,20180402035925,66,37,1,0 180707764,1270620899,374992366,222,20180402035935,68,49,1,0
关键字段说明:
- 第1列:唯一ID
- 第2列:经度
- 第3列:纬度
- 第5列:时间戳
- 第9列(最后一列):关注状态(0表示未关注,1表示已关注)
已完成的文件读取与合并代码
目前已经实现了读取指定目录下所有.DAT文件并合并为一个Pandas DataFrame的代码,我顺手把容易和内置类型冲突的变量名list改成了df_list:
import glob import pandas as pd path = r"1\1" allFiles = glob.glob(path + "\*.DAT") df_list = [] for filename in allFiles: df = pd.read_csv(filename, header=None) df_list.append(df) combined_df = pd.concat(df_list) combined_df.head()
核心需求
需要实现算法完成以下目标:
- 按唯一ID分组,追踪每个ID的关注状态变化轨迹
- 筛选出每个ID中关注状态从0变为1的关键记录
- 最终生成一个新的DataFrame,仅保留以下字段:
- 唯一ID(原第1列)
- 纬度(原第3列)
- 经度(原第2列)
- 时间戳(原第5列)
内容的提问来源于stack exchange,提问作者정석코딩의
相关产品推荐
相关产品推荐

