我有一个表格,例如:
seqnames start end strand
1 scaffold_0 1 50 -
2 scaffold_0 30 120 +
3 scaffold_0 60 400 -
4 scaffold_0 100 300 +
我只是想在每一行中使用模式“-”替换结束和开始之间的值。
因此它应该得到:
seqnames start end strand
1 scaffold_0 50 1 -
2 scaffold_0 30 120 +
3 scaffold_0 400 60 -
4 scaffold_0 100 300 +
感谢您的帮助。
答案 0 :(得分:3)
您可以创建一个掩码并在df.loc[]
下调用它,然后反向分配值:
l=df['strand'].eq("-")
df.loc[l,['start','end']] = df.loc[l,['end','start']].values
print(df)
seqnames start end strand
1 scaffold_0 50 1 -
2 scaffold_0 30 120 +
3 scaffold_0 400 60 -
4 scaffold_0 100 300 +