- 此问题在此处已有答案**:
How can I pivot a dataframe?(5个答案)
昨天关门了。
我有这个 Dataframe :
df = pd.DataFrame({'Status':['CO','AD','AD','AD','OT','CO','OT','AD'],
'Mutation':['H157Y','R47H','R47H','R67H','R62H','D87N','D39E','D39E']})
print(df)
Status Mutation
0 CO H157Y
1 AD R47H
2 AD R47H
3 AD R67H
4 OT R62H
5 CO D87N
6 OT D39E
7 AD D39E
我希望 Dataframe 如下所示:
df2 = pd.DataFrame({'Status':['CO','AD','OT'],'H157Y':[1,0,0],'R47H':[0,2,0],'R67H':[0,1,0],
'R62H':[0,0,1],'D87N':[1,0,0],'D39E':[1,0,1]})
print(df2)
Status H157Y R47H R67H R62H D87N D39E
0 CO 1 0 0 0 1 1
1 AD 0 2 1 0 0 0
2 OT 0 0 0 1 0 1
其中,突变是列名,其值(命中数)对应于状态。
2条答案
按热度按时间7gcisfzg1#
这应该可以达到目的:
wkftcu5l2#
我们可以像下面这样使用
pd.crosstab
:或者我们可以使用
pd.get_dummies
、pandas.DataFrame.groupby
和pandas.DataFrame.rename
列,如下所示:输出: