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

如何将宽格式年份数据转为长格式?求R/Python实现代码

宽表转长表实现方案

Python 实现

使用 pandas 的 melt 函数可快速完成宽表到长表的转换:

import pandas as pd

# 构造原始数据
df = pd.DataFrame({
    'state': ['First', 'Second', 'Third', 'Third'],
    'year1': ['2000', '2007', '2008', '2010'],
    'year 2': ['2004-2005', '2010-2011', '2010', '2012']
})

# 转换为长表
long_df = df.melt(
    id_vars='state',
    value_vars=['year1', 'year 2'],
    value_name='year'
).drop(columns='variable')

# 重置索引(可选,使索引连续)
long_df = long_df.reset_index(drop=True)

print(long_df)

运行后输出结果即为目标格式的表格。

R 实现

使用 tidyverse 中的 tidyr::pivot_longer 函数实现转换:

library(tidyverse)

# 构造原始数据
df <- tibble(
    state = c("First", "Second", "Third", "Third"),
    year1 = c("2000", "2007", "2008", "2010"),
    `year 2` = c("2004-2005", "2010-2011", "2010", "2012")
)

# 转换为长表
long_df <- df %>%
    pivot_longer(
        cols = starts_with("year"),
        names_to = NULL,
        values_to = "year"
    )

print(long_df)

运行上述代码即可得到所需的长表结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:33:25