clin.index
(row length = 81)的行是common_mrna
(col length = 151)的列的子集。只有当列名与clin
数据框的行值匹配时,我才想保留common_mrna
的列。
我的代码未能将common_mrna
中的列数减少到81。
import pandas as pd
common_mrna = common_mrna.set_index("Hugo_Symbol")
mrna_val = {}
for colnames, val in common_mrna.iteritems():
for i, rows in clin.iterrows():
if [[common_mrna.columns == i] == "TRUE"]:
mrna_val = np.append(mrna_val, val)
mrna = np.concatenate(mrna_val, axis=0)
common_mrna
<表类>Hugo_Symbol B C D tbody><<tr>第一个 1 2 3 4 第二 5 行 6 7 表类>
尝试使用reindex
:
common_mrna.reindex(clin.index, axis=1)
输出:
A D
First 1 4
Second 5 7
更新IIUC:
common_mrna.set_index('Hugo_Symbol').reindex(clin.index, axis=1).reset_index()
在ucc中,可以选择common_mrna
列中clin
中A header
的行,并添加common_mrna
的第一列
cols = clin.loc[clin.index.isin(common_mrna.columns)].index.tolist()
# or with set
cols = list(sorted(set(clin.index.tolist()) & set(common_mrna.columns), key=common_mrna.columns.tolist().index))
out = common_mrna[['Hugo_Symbol'] + cols]
print(out)
Hugo_Symbol A D
0 First 1 4
1 Second 5 7