我在 python
中有一个数据框,例如:
seqnames start end name number strand
A 50 453 A 1 -
B 30 322 A 2 -
C 10 432 A 3 -
D 36 344 A 4 +
E 40 321 A 5 +
F 78 234 A 6 -
我想根据 strand 列
中的符号更改开始和结束列中的 de 值。
所以对于每一行,如果 strand
是 -
则 start+1
和 end-2
如果链是 +
则什么都不做
这里我应该得到:
seqnames start end name number strand
A 51 451 A 1 -
B 31 320 A 2 -
C 11 430 A 3 -
D 36 344 A 4 +
E 40 321 A 5 +
F 79 232 A 6 -
谢谢你的帮助
最佳答案
使用:
df[['start','end']]=np.where(df['strand'].eq('-')[:,None],
np.column_stack((df['start']+1,df['end']-2)),
df[['start','end']].values)
print(df)
seqnames start end name number strand
0 A 51 451 A 1 -
1 B 31 320 A 2 -
2 C 11 430 A 3 -
3 D 36 344 A 4 +
4 E 40 321 A 5 +
5 F 79 232 A 6 -
关于python - 根据 Pandas 中的另一个列值更改列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58623591/