如何用两个向量的所有组合创建DataFrame
生成国家-年份对应DataFrame的实现方案
步骤说明
- 修正原始数据格式问题:国家列表中
"Bosnia and Herzegovina"后缺失逗号,年份列表里重复了2025(可选择保留或去除重复,代码中提供两种选项) - 利用笛卡尔积生成每个国家与所有年份的组合,再转换为DataFrame
代码实现
import pandas as pd from itertools import product # 修正后的国家列表 country_names = [ "Albania", "Algeria", "Bosnia and Herzegovina", "Croatia", "Cyprus", "Egypt, Arab Rep.", "France", "Greece", "Israel", "Italy", "Lebanon", "Libya", "Malta", "Montenegro", "Morocco", "Slovenia", "Spain", "Syrian Arab. Rep", "Tunisia", "Turkey" ] # 方案1:去除重复的2025,生成2021-2030完整年份 future_years = [2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030] # 方案2:保留原始重复的2025,取消下一行注释即可 # future_years = [2021, 2022, 2023, 2024, 2025, 2025, 2026, 2027, 2028, 2029, 2030] # 生成国家与年份的全组合 country_year_pairs = list(product(country_names, future_years)) # 创建目标DataFrame result_df = pd.DataFrame(country_year_pairs, columns=["Country", "Year"]) # 打印前5行示例 print(result_df.head())
输出示例
Country Year 0 Albania 2021 1 Albania 2022 2 Albania 2023 3 Albania 2024 4 Albania 2025
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

