在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
相关产品推荐
相关产品推荐

