在R语言中如何将两列数据垂直合并并标记每条数据的原始所属列
实现方法
你可以直接用Pandas内置的melt函数完成这个宽表转长表的需求,这是最简便的实现方式:
完整示例代码
import pandas as pd # 构造你给出的示例DataFrame df = pd.DataFrame({ "column1": ["v1", "v2", "v3"], "column2": ["v4", "v5", "v6"] }) # 核心转换逻辑 # var_name指定存储原列名的列名,value_name指定存储原值的列名 res = df.melt(var_name="column4", value_name="column3") # 调整列顺序和你要求的输出一致 res = res[["column3", "column4"]] # 打印验证结果 print(res)
其他可选实现(用stack方法)
如果你习惯用堆叠操作也可以用stack实现:
res = df.stack().reset_index(level=0, drop=True) \ .reset_index(name="column3") \ .rename(columns={"index": "column4"})
两种方法输出的结果都完全符合你要求的格式。
内容的提问来源于stack exchange,提问作者Jenni Nguyen
相关产品推荐
相关产品推荐

