如何在PySpark中转置仅含单行多列的DataFrame?
单行宽表转两列长表实现方案
环境依赖
需要使用Python的pandas数据处理库。
步骤1:构造原始数据(如果已有原始DataFrame可直接跳过)
import pandas as pd # 对应你给出的单行数据结构 raw_df = pd.DataFrame([[4, 1, 7, 2, 3]], columns=["A", "B", "C", "D", "E"])
转换方法(二选一即可)
方法1:使用melt函数(官方推荐宽转长方案)
melt是pandas专门设计用于宽表转长表的API,代码简洁可读性高:
result_df = raw_df.melt(var_name="Letter", value_name="Number")
方法2:使用转置+重置索引实现
如果对melt不熟悉,也可以用转置的方式实现相同效果:
result_df = raw_df.T.reset_index() # 重命名列名为指定格式 result_df.columns = ["Letter", "Number"]
输出验证
两种方法最终得到的result_df结构完全符合要求:
| Letter | Number |
|---|---|
| A | 4 |
| B | 1 |
| C | 7 |
| D | 2 |
| E | 3 |
内容的提问来源于stack exchange,提问作者Outlier
相关产品推荐
相关产品推荐

