我正嘗試用python中的pandas從我的數據(化學物質和蛋白質之間的得分)創建一個數據框。如何根據Python(pandas)列中的出現次序對數據框進行排序
我想讓我的數據框首先顯示出現最多的蛋白質,所以我先前對數據進行了排序。但是當我製作數據框時,它沒有得到預期的結果。
這裏是我的數據樣本:
chemicals prots scores
CID000000006 10116.ENSRNOP00000003921 196
CID000000051 10116.ENSRNOP00000003921 246
CID000000085 10116.ENSRNOP00000003921 196
CID000000119 10116.ENSRNOP00000003921 247
CID000000134 10116.ENSRNOP00000008952 159
CID000000135 10116.ENSRNOP00000008952 157
CID000000174 10116.ENSRNOP00000008952 439
CID000000175 10116.ENSRNOP00000001021 858
CID000000177 10116.ENSRNOP00000004027 760
正如你可以看到「10116.ENSRNOP00000003921」是在我的數據中最OCCURENCES蛋白質。
所以我想獲得這樣的:
10116.ENSRNOP00000003921 10116.ENSRNOP00000008952
CID000000006 196
CID000000051 246
CID000000085 196
CID000000119 247
CID000000134 159
CID000000135 157
CID000000174 439
,這裏是我的代碼:
import pandas as pd
df_rat= pd.read_csv("dt_matrix_rat.csv",sep="\t", header=True)
df_rat.columns = ['chemicals','proteins','scores']
df_rat1 = df_rat.pivot(index='chemicals', columns='proteins', values='scores')
df_rat1.to_csv("rat_matrix.csv", sep='\t', index=True )
你可以用'collections.Counter.most_common()'得到OCCURENCES的數量,但似乎你已經有了那些...的休息看起來像一個數據透視表:https://en.wikipedia.org/wiki/Pivot_table – Swier
數據已經按蛋白質發生排序,這只是我得到的矩陣不顯示在正確的順序結果 –
@ELWalou,你的意思是錯誤的列或行的順序? – MaxU