在Python(Pandas)中将长格式数据转换为宽格式数据

5

我将尝试将我的长数据重新调整为宽格式。当前数据的样式如下:

OBS . date . TICKER . RET

1 . 20050131 . AAPL . 0.02
2 . 20050231 . AAPL . 0.01
3 . 20050131 . GOOG . 0.05
4 . 20050231 . GOOG . 0.03

我希望能够获取以下数据:

TICKER . 20050131 . 20050231

AAPL   .   0.02   .   0.01
GOOG   .   0.05   .   0.03

数据存储在pandas dataframe中。我尝试过堆叠数据,但我认为我做得不对。

谢谢帮忙!

1个回答

7
您可以对数据框进行 透视
df.pivot(index='TICKER', columns='date', values='RET')

date    20050131  20050231
TICKER                    
AAPL        0.02      0.01
GOOG        0.05      0.03

我尝试做这个,但是出现了以下错误:“ValueError: 索引包含重复条目,无法重塑” - SK23
在这种情况下,您需要考虑自己想要实现什么:如果您在单个日期上有多个 例如 AAPL 的条目,则希望有哪个值?df.pivot 不能为您选择。 - sacuL
哦,所以这个错误是由于有多个相同日期的条目引起的?我想我得先清理一下数据。感谢您的帮助! - SK23

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接