Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何转换列&x2018;s值来扩展数据帧?_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何转换列&x2018;s值来扩展数据帧?

Python 如何转换列&x2018;s值来扩展数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,现在我有了这样一个数据帧: Stock Price Change Date 2015-12-31 COVS NaN 2016-01-04 COVS 0.000000 2016-01-05 COVS -0.056000 2016-01-06 COVS -0.008475 2016-01-07 COVS -0.025641 2016-01-08 COVS -0.052632

现在我有了这样一个数据帧:

Stock  Price Change
Date                          
2015-12-31  COVS           NaN
2016-01-04  COVS      0.000000
2016-01-05  COVS     -0.056000
2016-01-06  COVS     -0.008475
2016-01-07  COVS     -0.025641
2016-01-08  COVS     -0.052632
2015-12-31  EMMS           NaN
2016-01-04  EMMS      0.015625
2016-01-05  EMMS     -0.030769
2016-01-06  EMMS      0.079365
2016-01-07  EMMS     -0.029412
2016-01-08  EMMS     -0.045455
2015-12-31   VOD           NaN
2016-01-04   VOD     -0.002170
2016-01-05   VOD      0.001553
2016-01-06   VOD     -0.009615
2016-01-07   VOD     -0.009396
2016-01-08   VOD      0.028770
我的问题很简单,我如何将其转化为:

Stock              COVS       EMMS        VOD         
Date     
2015-12-31         NaN         NaN        NaN
2016-01-04      0.000000     0.015625  -0.002170
2016-01-05     -0.056000    -0.030769   0.001553
2016-01-06     -0.008475     0.079365  -0.009615
2016-01-07     -0.025641    -0.029412  -0.009396
2016-01-08     -0.052632    -0.045455   0.028770
由于这种问题是典型的,我相信我会遇到不止一次

我使用了'Dataframe.T'方法,结果仍然不能满足我的要求


愿意了解您的解决方案。

使用
pivot
方法

df.pivot('Date', 'Stock', 'Price Change')
看一看

您可以使用以下内容:

df.pivot(index='Date', columns='Stock', values='Price Change')
例如:

In [1]: df
Out[1]: 

         date variable     value
0  2000-01-03        A  0.469112
1  2000-01-04        A -0.282863
2  2000-01-05        A -1.509059
3  2000-01-03        B -1.135632
4  2000-01-04        B  1.212112
5  2000-01-05        B -0.173215
6  2000-01-03        C  0.119209
7  2000-01-04        C -1.044236
8  2000-01-05        C -0.861849
9  2000-01-03        D -2.104569
10 2000-01-04        D -0.494929
11 2000-01-05        D  1.071804

In [2]: df.pivot(index='date', columns='variable', values='value')
Out[2]: 

variable           A         B         C         D
date                                              
2000-01-03  0.469112 -1.135632  0.119209 -2.104569
2000-01-04 -0.282863  1.212112 -1.044236 -0.494929
2000-01-05 -1.509059 -0.173215 -0.861849  1.071804

哎呀,我输入了那个顺序,但是我得到了一个错误,说
KeyError:Date
。我如何添加一个新的范围索引(438),你能帮忙吗?非常感谢。“日期”列标签是否有任何前导空格或尾随空格?您还可以使用
df.reset_index()
重置索引值。另一个可能的解决方案是将
pivot()
更改为
.pivot\u table()
。我收到一个错误消息,说
ValueError:Index包含重复的条目,无法重塑
,这意味着什么?在调用
.pivot
之前,您是否尝试过用
.reset\u Index()
重置索引?