У меня фактически есть один фрейм данных, вот пример:
cluster seq_sp1 seq_sp2
1 seq20 seq56
1 seq56 seq20
2 seq3 seq5
3 seq9 seq5
3 seq7 seq4
3 seq4 seq7
и я хотел бы удалить дублированные последовательности:
здесь в примере seq20 seq56
дублируется, потому что есть также seq56 seq20
и то же самое для seq7 seq4
и seq4 seq7
Я думаю, что решение было бы первым отсортировать все столбцы, такие:
cluster seq_sp1 seq_sp2
1 seq20 seq56
1 seq20 seq56
2 seq3 seq5
3 seq9 seq5
4 seq7 seq4
4 seq7 seq4
, а затем удалите одну из двух дублированных последовательностей и получите:
cluster seq_sp1 seq_sp2
1 seq20 seq56
3 seq3 seq5
4 seq9 seq5
6 seq7 seq4
Спасибо за вашу помощь:)
Отчет о сценарии, который вы мне дали:
вот глава моих первых данных (см. Рисунок, чтобы увидеть цветные дублированные группы)
cluster_name qseqid sseqid pident_x pident_y length qstart qend sstart send qspec sspec
13 cluster_016663 EOG090X00GO_0035_0035_1 EOG090X00GO_0042_0035_1 0.93 93.0 1179 1 1175 1 1179 0035 0042
14 cluster_016663 EOG090X00GO_0035_0035_1 EOG090X00GO_0042_0042_1 0.93 93.0 1179 1 1175 1 1179 0035 0042
16 cluster_016663 EOG090X00GO_0035_0042_1 EOG090X00GO_0042_0035_1 0.93 93.0 1179 1 1175 1 1179 0035 0042
17 cluster_016663 EOG090X00GO_0035_0042_1 EOG090X00GO_0042_0042_1 0.93 93.0 1179 1 1175 1 1179 0035 0042
19 cluster_016663 EOG090X00GO_0042_0035_1 EOG090X00GO_0035_0035_1 0.93 93.0 1179 1 1179 1 1175 0042 0035
20 cluster_016663 EOG090X00GO_0042_0035_1 EOG090X00GO_0035_0042_1 0.93 93.0 1179 1 1179 1 1175 0042 0035
22 cluster_016663 EOG090X00GO_0042_0042_1 EOG090X00GO_0035_0035_1 0.93 93.0 1179 1 1179 1 1175 0042 0035
23 cluster_016663 EOG090X00GO_0042_0042_1 EOG090X00GO_0035_0042_1 0.93 93.0 1179 1 1179 1 1175 0042 0035
и вот результат, который я должен получить:
Unnamed: 0 cluster_name qseqid sseqid pident_x pident_y length qstart qend sstart send qspec sspec
0 13 cluster_016663 EOG090X00GO_0035_0035_1 EOG090X00GO_0042_0035_1 0.93 93.0 1179 1 1175 1 1179 35 42
1 14 cluster_016663 EOG090X00GO_0035_0035_1 EOG090X00GO_0042_0042_1 0.93 93.0 1179 1 1175 1 1179 35 42
8 27 cluster_015764 EOG090X00LI_0035_0035_1 EOG090X00LI_0042_0042_1 0.8059999999999999 82.3 1013 1 1013 1 1008 35 42
9 28 cluster_015764 EOG090X00LI_0035_0035_1 EOG090X00LI_0042_0035_1 0.784 78.4 1013 1 1013 1 963 35 42
11 32 cluster_015764 EOG090X00LI_0042_0035_1 g1726.t1_0035_0042 0.67 58.5 1010 1 963 1 751 42 35
Но на самом деле я получаю:
Unnamed: 0 cluster_name qseqid sseqid pident_x pident_y length qstart qend sstart send qspec sspec
0 13 cluster_016663 EOG090X00GO_0035_0035_1 EOG090X00GO_0042_0035_1 0.93 93.0 1179 1 1175 1 1179 35 42
1 14 cluster_016663 EOG090X00GO_0035_0035_1 EOG090X00GO_0042_0042_1 0.93 93.0 1179 1 1175 1 1179 35 42
Я использовал этот код:
df=pd.read_table("dataframe.txt",header=0,sep='\t')
df[['qseqid','sseqid']] = np.sort(df[['qseqid','sseqid']], axis=1)
df = df.drop_duplicates(subset=['qseqid ','sseqid'])
df.to_csv("df_test",sep='\t')
![picture](https://i.stack.imgur.com/wn2Yg.png)