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 - 我是否需要锁定来保护我的代码中的多线程竞争条件

python - 验证字符串是否仅包含一系列数字 Python 2.7

django - 模块未找到错误 : No module named 'textencoder' error when upgraded to python 3

python - Pandas 可以在 Google App Engine for Python 上运行吗?

python - 基于python中的 Pandas 索引在新列中添加值

python - 如何使用 python 挂载 USB 设备或硬盘分区

python - 我如何删除 python 2.7,因为我已经在 ubuntu 上安装了 3.6.5?

python - 用于内置操作的新样式类属性搜索

python - 如何根据列和数组中存在的数据填充值? Pandas

python - Pandas 列表的列操作