You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从国家列表创建空的国家-周纵向数据集?

这问题我熟!用Python的pandas库就能轻松生成你要的国家-周纵向数据集,给你两种实用的实现方式,按需选择即可:

方法1:利用笛卡尔积快速生成(推荐)

这种方法通过生成国家列表和周数的笛卡尔积,一步到位构建基础结构,代码简洁高效:

import pandas as pd

# 定义你的国家列表
countries = ['Albania', 'Belgium', 'Zimbabwe']
# 生成1到52的周数序列
weeks = range(1, 53)

# 生成国家与周数的所有组合(笛卡尔积),并设置索引名称
multi_index = pd.MultiIndex.from_product(
    [countries, weeks], 
    names=['country', 'week']
)

# 转换为DataFrame,将索引转为列,并初始化其他变量为0
df_weekly = pd.DataFrame(index=multi_index).reset_index()
# 按需添加任意初始为0的变量,比如这里示例添加两个变量
df_weekly['sales'] = 0
df_weekly['visits'] = 0

说明:

  • pd.MultiIndex.from_product会自动把每个国家和每一周进行配对,完美生成你需要的纵向结构
  • 后续可以直接通过df_weekly['新变量名'] = 0添加更多初始为0的字段

方法2:用序列重复生成(直观易懂)

如果你更喜欢更直观的序列操作,也可以通过重复国家列表和周数序列来构建:

import pandas as pd

countries = ['Albania', 'Belgium', 'Zimbabwe']
num_weeks = 52

# 每个国家重复52次,生成country列
country_col = [country for country in countries for _ in range(num_weeks)]
# 周数1-52重复len(countries)次,生成week列
week_col = list(range(1, num_weeks + 1)) * len(countries)

# 构建DataFrame并初始化变量
df_weekly = pd.DataFrame({
    'country': country_col,
    'week': week_col
})
# 添加初始为0的变量
df_weekly['revenue'] = 0
df_weekly['active_users'] = 0

扩展提示:

如果后续需要扩展到多年份的周数据,只需把年份也加入笛卡尔积/重复序列即可,比如:

years = [2023, 2024]
multi_index = pd.MultiIndex.from_product([countries, years, weeks], names=['country', 'year', 'week'])

内容的提问来源于stack exchange,提问作者user9092346

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:23:37