使用Python pandas按国家分组统计其对应年份的起止区间
实现代码
你可以通过pandas的分组聚合+字符串拼接直接完成需求,完整实现如下:
import pandas as pd # 如果你已经有原始DataFrame可跳过构造数据的步骤 data = { "year": [1910, 1916, 1919, 1921, 1923, 1930, 1950, 1953, 1961], "country": ["Argentina"]*5 + ["Yugoslavia"]*4 } df = pd.DataFrame(data) # 核心处理逻辑 result = df.groupby("country", as_index=False)["year"].agg( period=lambda x: f"{x.min()} to {x.max()}" ) # 输出验证结果 print(result)
如果你需要保留中间计算过程,也可以拆分为先算最大最小年份再拼接的写法:
result = df.groupby("country", as_index=False)["year"].agg( min_year="min", max_year="max" ).assign( period=lambda x: x["min_year"].astype(str) + " to " + x["max_year"].astype(str) )[["country", "period"]]
两种写法运行后得到的result都是你需要的输出格式。
内容的提问来源于stack exchange,提问作者N-Sam
相关产品推荐
相关产品推荐

