将pandas DataFrame旋转90度

23

基本上我想将一个Pandas DataFrame 顺时针旋转90度,使其变成

df:
    A B C D
  0 5 3 6 7
  1 6 3 5 2

它将变成

df:
   6 5 A
   3 3 B
   5 6 C
   2 7 D

有没有使用数据透视表或其他方法来完成这个任务的?谢谢!

1个回答

43

转置它

In [1]: df = DataFrame([[5,3,6,7],[6,3,5,2]],index=[0,1],columns=list('ABCD'))

In [2]: df
Out[2]: 
   A  B  C  D
0  5  3  6  7
1  6  3  5  2

In [3]: df.T
Out[3]: 
   0  1
A  5  6
B  3  3
C  6  5
D  7  2

我猜你真的非常想要这个

In [7]: df.T.reset_index().reindex(columns=[1,0,'index'])
Out[7]: 
   1  0 index
0  6  5     A
1  3  3     B
2  5  6     C
3  2  7     D

并不是 OP 所要求的内容。 - ely
2
我按照原帖所述进行了更新,尽管它并不是那么有用。 - Jeff
1
@Jeff,说它没用是愚蠢的。这取决于应用程序。例如,您可以在Pandas DataFrame中存储图像像素信息,并希望实际旋转它并对标签值进行特殊处理。它是特定于应用程序的,是否有用通常与SO无关,不应尝试超出问题范围并为OP决定问题是否“正确”。 - ely
2
此外,在您的回答中,您可能希望删除硬编码的列索引,并执行类似于以下内容的操作:temp_df = df.T.reset_index(); temp_df[temp_df.columns[::-1]],以进行特定类型的旋转。 - ely
我不知道那个;问题中的示例没有任何索引,因此不清楚;话虽如此,您的建议总体上是不错的! - Jeff

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