将 DataFrame 输出到 tsv,如何忽略或覆盖 'need to escape' 错误
Outputting DataFrame to tsv, how to ignore or override 'need to escape' error
与 .
相关但不同
我想将我的 pandas 数据帧输出到 tsv 文件。我的数据的第一列是一个模式,它实际上包含 3 位信息,我想将它们分成自己的列:
Range c1
chr1:2953-2965 -0.001069
chr1:35397-35409 -0.001050
chr1:37454-37466 -0.001330
chr2:37997-38009 -0.001235
chrX:44465-44477 -0.001292
所以我这样做:
Df = Df.reset_index()
Df["Range"] = Df["Range"].str.replace( ":", "\t" ).str.replace( "-", "\t" )
Df
Range c1
0 chr1\t2953\t2965 -0.001069
1 chr1\t35397\t35409 -0.001050
2 chr1\t37454\t37466 -0.001330
3 chr2\t37997\t38009 -0.001235
4 chrX\t44465\t44477 -0.001292
我现在需要做的就是不带 header 或索引的输出,再添加一个 '\t' 来分隔最后一列,我将根据需要得到我的 4 列输出文件。不幸的是...
Df.to_csv( "~/testout.bed",
header=None,
index=False,
sep="\t",
quoting=csv.QUOTE_NONE,
quotechar=""
)
Error: need to escape, but no escapechar set
在这里我想忽略这个错误并说“不, python,实际上你不要需要转义任何东西。我把那些制表符放在那里专门用来创建列分隔符。"
我明白为什么会出现这个错误。 Python 认为我忘记了那些选项卡,这是一个安全措施,但实际上我没有忘记任何事情,而且我知道自己在做什么。我知道我数据中的制表符与 column-separators、 无法区分,而这正是我想要的。 我把它们放在那里特别是这个原因。
当然必须有某种方法来覆盖它,不是吗?有什么方法可以忽略错误并强制输出?
您可以简单地使用str.split
直接拆分Range
列-
df['Range'].str.split(r":|-", expand=True)
# 0 1 2
#0 chr1 2953 2965
#1 chr1 35397 35409
#2 chr1 37454 37466
#3 chr2 37997 38009
#4 chrX 44465 44477
要保留所有列,您只需将此拆分与原始合并即可
df = df.join(df['Range'].str.split(r":|-", expand=True))
与
我想将我的 pandas 数据帧输出到 tsv 文件。我的数据的第一列是一个模式,它实际上包含 3 位信息,我想将它们分成自己的列:
Range c1
chr1:2953-2965 -0.001069
chr1:35397-35409 -0.001050
chr1:37454-37466 -0.001330
chr2:37997-38009 -0.001235
chrX:44465-44477 -0.001292
所以我这样做:
Df = Df.reset_index()
Df["Range"] = Df["Range"].str.replace( ":", "\t" ).str.replace( "-", "\t" )
Df
Range c1
0 chr1\t2953\t2965 -0.001069
1 chr1\t35397\t35409 -0.001050
2 chr1\t37454\t37466 -0.001330
3 chr2\t37997\t38009 -0.001235
4 chrX\t44465\t44477 -0.001292
我现在需要做的就是不带 header 或索引的输出,再添加一个 '\t' 来分隔最后一列,我将根据需要得到我的 4 列输出文件。不幸的是...
Df.to_csv( "~/testout.bed",
header=None,
index=False,
sep="\t",
quoting=csv.QUOTE_NONE,
quotechar=""
)
Error: need to escape, but no escapechar set
在这里我想忽略这个错误并说“不, python,实际上你不要需要转义任何东西。我把那些制表符放在那里专门用来创建列分隔符。"
我明白为什么会出现这个错误。 Python 认为我忘记了那些选项卡,这是一个安全措施,但实际上我没有忘记任何事情,而且我知道自己在做什么。我知道我数据中的制表符与 column-separators、 无法区分,而这正是我想要的。 我把它们放在那里特别是这个原因。 当然必须有某种方法来覆盖它,不是吗?有什么方法可以忽略错误并强制输出?
您可以简单地使用str.split
直接拆分Range
列-
df['Range'].str.split(r":|-", expand=True)
# 0 1 2
#0 chr1 2953 2965
#1 chr1 35397 35409
#2 chr1 37454 37466
#3 chr2 37997 38009
#4 chrX 44465 44477
要保留所有列,您只需将此拆分与原始合并即可
df = df.join(df['Range'].str.split(r":|-", expand=True))