如何在Pandas DataFrame中统计每年对应的唯一飓风ID数量
实现每年唯一飓风ID数量统计的方法
你当前的代码统计的是每年的总数据条目数,因为单场飓风对应多条记录,所以结果和实际飓风数量不符,调整方案如下:
核心修改逻辑
按年份分组后,对ID列做去重计数,使用pandas的nunique()方法即可实现。
完整可运行代码
import pandas as pd df = pd.read_csv("atlantic.csv") # 转换日期为pandas datetime格式 df["Date"] = pd.to_datetime(df["Date"].astype(str), format="%Y%m%d") # 新增年份辅助列 df["year"] = df["Date"].dt.year # 按年份分组统计唯一ID的数量,默认按年份升序排序 hurricane_count = df.groupby("year")["ID"].nunique() # 若需要按飓风数量降序排序,可替换为下面的代码 # hurricane_count = df.groupby("year")["ID"].nunique().sort_values(ascending=False) print(hurricane_count)
效果验证
用你提供的节选数据运行上述代码,输出结果为:
year 1851 2 1852 2 Name: ID, dtype: int64
和节选数据里1851年2个唯一ID、1852年2个唯一ID的实际情况一致。
内容的提问来源于stack exchange,提问作者merit_2
相关产品推荐
相关产品推荐

