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

在R语言中基于已有旧dataframe生成指定新dataframe的方法问询

解决方案

以下是两类最常见的DataFrame结构转换实现,可根据你的实际表结构选择:

场景1:宽表转长表

若原始表为单主体多指标的宽表结构(比如每行存储1个用户的多个月份消费额、1个学生的多科成绩),可使用melt方法:

import pandas as pd

# 读取原始数据,替换为你自己的读取逻辑
# df = pd.read_csv("你的数据文件路径")
# 下方为示例原始数据构造,可忽略
df = pd.DataFrame({
    "姓名": ["张三", "李四", "王五"],
    "语文": [92, 87, 95],
    "数学": [88, 94, 79],
    "英语": [90, 83, 91]
})

# 转换代码
new_df = df.melt(
    id_vars=["姓名"], # 不需要展开的保留列,可填多个
    var_name="科目", # 展开后维度列的自定义名称
    value_name="成绩" # 展开后数值列的自定义名称
)

场景2:多值列拆分为多行

若原始表某列存储多值(比如列表、逗号/空格分隔的多个值),可使用explode方法:

# 下方为示例原始数据构造,可忽略
df = pd.DataFrame({
    "班级": ["一班", "二班"],
    "学生名单": [["小明", "小红", "小刚"], ["小丽", "小强"]]
})

# 若多值为分隔符分隔的字符串,先转成列表再展开,比如逗号分隔的情况:
# df["学生名单"] = df["学生名单"].str.split(",")

# 转换代码,ignore_index=True用于重置行索引
new_df = df.explode("学生名单", ignore_index=True)

如果你的数据结构和上述两类不符,可以补充列名和样例数据获取更精准的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:18:04