Python中如何正确转置单行DataFrame表格?
解决方案
方法1:转置+索引整理实现
先排除不需要的index列,再转置,最后重置索引并重命名列即可得到目标格式:
import pandas as pd # 你的原始DataFrame data = {'index': [0], 'A': [20], 'B': [30], 'C': [50]} df = pd.DataFrame(data) # 1. 提取需要转换的列(A、B、C) df_target = df[['A', 'B', 'C']] # 2. 执行转置 df_transposed = df_target.T # 3. 重置索引并设置新表头 df_transposed.reset_index(inplace=True) df_transposed.columns = ['Data Point', 'Value']
最终结果:
| Data Point | Value |
|---|---|
| A | 20 |
| B | 30 |
| C | 50 |
方法2:使用melt函数(更简洁)
Pandas的melt函数专门用于宽表转长表,无需额外处理索引,一步到位:
import pandas as pd # 你的原始DataFrame data = {'index': [0], 'A': [20], 'B': [30], 'C': [50]} df = pd.DataFrame(data) # 直接生成目标格式表格 df_result = pd.melt(df, value_vars=['A', 'B', 'C'], var_name='Data Point', value_name='Value')
为什么直接transpose不符合预期?
你得到表头为0的结果,是因为转置时会把原始DataFrame的**行索引(这里是0)**作为转置后的列名,同时原始的index列也会被转成一行无效数据。所以需要先过滤无关列,或者用更适配的长表转换工具。
内容的提问来源于stack exchange,提问作者Ellen Regan
相关产品推荐
相关产品推荐

