簡體   English   中英

熊貓通過反向補充字符串合並列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM