Pandas DataFrame转置索引和列

时间:2016-12-18 19:11:19

标签: python python-3.x pandas dataframe

我的数据框如下,但规模很大

        Sample  Taxonomy Count
    0   1       A        1 
    1   1       B        2
    2   1       C        5
    3   1       D        7
    4   2       B        1
    6   2       D        3
    7   2       E        4
    8   2       F        5      

我想要的结果如下

    Taxonomy  A  B  C  D  E  F  G
    Sample 1: 1  2  5  7  NA NA NA  
    Sample 2: NA 1  NA 3  4  5  NA  

尝试将分类法作为索引但我仍然拥有每个样本的每个分类法的副本,并且仍然使用DataFrame.transpose()进行转置时它不会产生所需的数据帧。

1 个答案:

答案 0 :(得分:2)

您可以使用pivot

df = df.pivot(index='Sample', columns='Taxonomy', values='Count')
print (df)
Taxonomy    A    B    C    D    E    F
Sample                                
1         1.0  2.0  5.0  7.0  NaN  NaN
2         NaN  1.0  NaN  3.0  4.0  5.0

set_indexunstack

df = df.set_index(['Sample','Taxonomy'])['Count'].unstack()
print (df)
Taxonomy    A    B    C    D    E    F
Sample                                
1         1.0  2.0  5.0  7.0  NaN  NaN
2         NaN  1.0  NaN  3.0  4.0  5.0