我有以下的數據幀:如何刪除列上每行中的所有零,則其總和所選擇的列進行排序
import pandas as pd
import io
temp=u"""probe,genes,sample1,sample2,sample3
1415777_at,Pnliprp1,20,0,11
1415805_at,Clps,17,0,55
1415884_at,Cela3b,47,0,100"""
df = pd.read_csv(io.StringIO(temp))
df
它看起來像這樣:
In [54]: df
Out[54]:
probe genes sample1 sample2 sample3
0 1415777_at Pnliprp1 20 0 11
1 1415805_at Clps 17 0 55
2 1415884_at Cela3b 47 0 100
我想要什麼做的是:
刪除列所有值爲零
按
sample123
排序,按降序排列。
所需的輸出是
probe genes sample3 sample1
0 1415777_at Pnliprp1 11 20
1 1415805_at Clps 55 17
2 1415884_at Cela3b 100 47
注意這裏,我要排序的列。
# Deleting all zeros columns
df[df.columns[(df.columns !=0).all()]]
我怎樣才能做到這一點:所以樣品3應該在這個代碼是SAMPLE1
我堅持一個頭?
這並不是我想要的。我想排序列,而不是行。所以sample3應該是樣本的頭1 – neversaint
並且可能*不*使用硬編碼求和'df.sample1 + df.sample2 + df.sample3'。因爲實際上它不僅僅是3,而且總是在第二列之後。 – neversaint
@neversaint查看更新。我認爲依賴列位置有點脆弱,因此請參閱建議的替代方案。 –