我的数据框如下,但规模很大
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()进行转置时它不会产生所需的数据帧。
答案 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
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