如何在Python Pandas中为动物收容所数据添加累计到访次数列
为动物收容所数据集添加到访次数列的实现方法
因为你的入所(intakes)和出所(outcomes)数据集已经按日期排序,直接用Pandas的分组计数功能就能快速实现需求:
处理入所数据集
对入所数据按Animal ID分组,使用cumcount()对每个分组内的行按顺序计数(默认从0开始),加1后得到从1起始的到访次数,将结果存入新列Shelter Visits:
import pandas as pd # 假设你的入所数据存储在intakes_df中 intakes_df['Shelter Visits'] = intakes_df.groupby('Animal ID').cumcount() + 1
运行后,你的入所数据会和示例期望结果完全一致:
| Animal ID | Intake Date | Shelter Visits |
|---|---|---|
| 1 | 12/07/2017 02:07:00 PM | 1 |
| 2 | 12/08/2017 01:10:00 PM | 1 |
| 1 | 01/06/2018 12:03:00 PM | 2 |
| 3 | 01/07/2018 01:10:00 PM | 1 |
| 2 | 01/08/2018 04:15:00 PM | 2 |
处理出所数据集
出所数据集的处理逻辑完全相同,因为它也按日期排序,同样按Animal ID分组后计数:
# 假设你的出所数据存储在outcomes_df中 outcomes_df['Shelter Visits'] = outcomes_df.groupby('Animal ID').cumcount() + 1
合并数据集
添加完到访次数列后,你可以同时用Animal ID和Shelter Visits作为匹配键,精准合并同一只动物的同一次进出记录:
merged_df = pd.merge(intakes_df, outcomes_df, on=['Animal ID', 'Shelter Visits'])
内容的提问来源于stack exchange,提问作者Lindsey
相关产品推荐
相关产品推荐

