python - 转置具有多列的 pandas 数据框

标签 python python-2.7 pandas

我有一个数据框,目前看起来像这样:

import numpy as np
raw_data = {'Series_Date':['2017-03-10','2017-03-13','2017-03-14','2017-03-15'],'SP':[35.6,56.7,41,41],'1M':[-7.8,56,56,-3.4],'3M':[24,-31,53,5]}
import pandas as pd
df = pd.DataFrame(raw_data,columns=['Series_Date','SP','1M','3M'])
print df

我想以一种方式进行转置,以便所有值字段都转置到值列,并且日期作为行项目附加。值字段的列名称成为描述列的一行。生成的数据框应如下所示:

import numpy as np
raw_data = {'Series_Date':['2017-03-10','2017-03-10','2017-03-10','2017-03-13','2017-03-13','2017-03-13','2017-03-14','2017-03-14','2017-03-14','2017-03-15','2017-03-15','2017-03-15'],'Value':[35.6,-7.8,24,56.7,56,-31,41,56,53,41,-3.4,5],'Desc':['SP','1M','3M','SP','1M','3M','SP','1M','3M','SP','1M','3M']}
import pandas as pd
df = pd.DataFrame(raw_data,columns=['Series_Date','Value','Desc'])
print df

有人可以帮助我如何以这种方式翻转和转置我的 DataFrame 吗?

最佳答案

使用pd.meltDF 从宽格式转换为长格式:

idx = "Series_Date"              # identifier variable
pd.melt(df, id_vars=idx, var_name="Desc").sort_values(idx).reset_index(drop=True)

enter image description here

关于python - 转置具有多列的 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43090132/

相关文章:

python - 安装 xlwt

python - 模拟具有不同返回值的相同方法在Python中的函数中调用两次

python - 如何在Python中将字符串添加到JSON列表中

Python:在黑色边框中反射图像

python - 最小组大小的 Pandas groupby

python - 计算 python 中的唯一单词

python-2.7 - 同一个系列中的时间序列日期时间有两种格式,如何将它们更改为一种格式?

python - 在 python 中使用 zerorpc 对项目进行 dockerizing 时导入错误

python - 将 pickle 文件写入 AWS 中的 s3 存储桶

python-2.7 - 从多个数据帧构建 numpy 数组(矩阵)