如何在Python中删除\n换行分隔符?

2024-06-16 11:27:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想比较23andme的一些基因组序列原始数据,并使用Python进行比较

我已按如下方式导入我的数据:

import pandas as pd
import os

sample_1 = pd.read_csv('sample_1.txt', delimiter ='\t', dtype={"rsid": str, "chromosome": str, "position": int, "genotype": str})
sample_2 = pd.read_csv('sample_2_new.txt', delimiter ='\t', dtype={"rsid": str, "chromosome": str, "position": int, "genotype": str})

现在,我只想确保Y染色体的安全,以便以后进行爆炸性比较。因此,我需要数据帧中一列的字符串条目作为一个连续字符串,如"AATTGCTT..."

y_1 = sample_1.loc[sample_5['chromosome'] == "Y"]
y_1_blast = y_1.to_string(columns = ["genotype"], header=False, index=False, index_names=False)

由于输出也包含'\n',我尝试通过以下方式删除分隔符:

y_1_blast.rstrip()

但这是行不通的。 我还得到了' ... '包围的整个输出,这让我怀疑这是否是问题所在


Tags: csv数据sampleimporttxtfalseread方式
1条回答
网友
1楼 · 发布于 2024-06-16 11:27:34

是的! 如果输出实际上是一个连续字符串,则可以选择正则表达式替换startegy

import re

# TEST DATA #
y_1_blast = "\nATCG\nATCT\nGAGC\nATGAG\nACGACGTG"

y_1_blast = re.sub('\n', '', y_1_blast)

'ATCGATCTGAGCATGAGACGACGTG'

甚至更安全(即除去所有ATGC信件以外的所有信件)

import re

# TEST DATA #
y_1_blast = "..\nATC.G ATCT\n\nGA..GC ATG_AG\nAC_GA  _CGTG.."

y_1_blast = re.sub("[^ATGC]","",y_1_blast)

'ATCGATCTGAGCATGAGACGACGTG'

相关问题 更多 >