[英]Pandas merging columns by reverse compliment string
因此,我一直堅持如何在熊貓中使用數據處理技術。 我下面有一個示例數據框,每行總計25個計數。 我想按相反的稱贊順序合並列名。
AA CC GG AT TT
4 7 0 9 5
3 8 5 5 2
8 6 2 8 1
列“ AA”和“ TT”彼此相反,與“ CC”和“ GG”一樣
AA/TT CC/GG AT
9 7 9
5 13 5
9 8 8
如何匹配列名的反向稱贊並將其與另一列的名稱合並。
注意:我已經有一個函數來查找字符串的反補詞
我建議只使用pd.concat
創建一個新框架:
new_df = pd.concat([df[['AA', 'TT']].sum(1).rename('AA/TT'),
df[['CC', 'GG']].sum(1).rename('CC/GG'),
df['AT']], axis=1)
>>> new_df
AA/TT CC/GG AT
0 9 7 9
1 5 13 5
2 9 8 8
更一般而言,您可以通過列表理解來實現。 鑒於相反的贊美:
reverse_compliments = [['AA','TT'], ['CC','GG']]
在原始數據框列中找到那些沒有反向稱贊的值(這里可能有更好的方法,但這是可行的):
reverse_compliments.append(df.columns.difference(
pd.np.array(reverse_compliments)
.flatten()))
並使用pd.concat
進行列表理解:
new_df = pd.concat([df[x].sum(1).rename('/'.join(x)) for x in reverse_compliments],
axis=1)
>>> new_df
AA/TT CC/GG AT
0 9 7 9
1 5 13 5
2 9 8 8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.