與此問題相關但不同。
我想將我的熊貓資料框輸出到 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
我現在需要做的就是輸出沒有標題或索引,然后再添加一個 '\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 認為我忘記了那些選項卡,這是一個安全問題,但實際上我并沒有忘記任何事情,而且我知道我在做什么。我知道我的資料中的制表符與列分隔符無法區分,這正是我想要的。出于這個原因,我專門把它們放在那里。當然必須有某種方法來覆寫它,不是嗎?有什么辦法可以忽略錯誤并強制輸出?
uj5u.com熱心網友回復:
您可以簡單地使用直接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))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/414807.html
標籤:
