大型DataFrame中年份与个体编号的聚合及数据处理需求
解决方案:处理大型DataFrame的缺失值与统计需求
1. 清理缺失值
先过滤掉YEAR和IND字段存在空值的行,避免干扰后续统计:
# 移除YEAR或IND为NA的行 df_clean = df.dropna(subset=['YEAR', 'IND'])
2. 统计每年的唯一个体编号数量
按年份分组后,直接统计每组内唯一个体的数量:
# 按年份分组,计算唯一个体数 yearly_unique_ind = df_clean.groupby('YEAR')['IND'].nunique() # 查看结果 print(yearly_unique_ind)
输出是一个Series,索引为年份,对应值是该年份的唯一个体数量。
3. 为每个个体编号列出所有出现的年份
按个体编号分组,把对应年份整理成列表(如果同一年份有重复记录,可加去重逻辑):
# 按个体分组,收集所有出现的年份 ind_year_list = df_clean.groupby('IND')['YEAR'].agg(list) # 若需去重并排序,可替换为: # ind_year_list = df_clean.groupby('IND')['YEAR'].agg(lambda x: sorted(list(set(x)))) # 查看结果 print(ind_year_list)
输出的Series中,索引是个体编号,值为该个体出现过的所有年份的列表。
内容的提问来源于stack exchange,提问作者Dag
相关产品推荐
相关产品推荐

