python - 根据熊猫中的另一个列值更改列值
问题描述
我有一个数据框,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 column
.
所以对于每一行,如果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 -
推荐阅读
- vue.js - 如何添加用户输入 vue&axios api 调用?
- r - 如何在 Rmarkdown 中格式化类似帮助的文档
- python - 如何准备 MNIST 格式的图像数据集
- java - Android api 级别 8.1 的更新
- ruby-on-rails - 传递给角度时Rails中的数组序列未正确转换
- git - 为什么 Git 需要设计 Index /Stage?
- wordpress - 自动优化无法写入缓存目录
- amazon-web-services - 如何获取 AWS lambda 函数执行状态
- typescript - 为什么 Array.map 允许我传递非泛型类型的成员
- javascript - 如何在 Javascript 中以编程方式在画布上绘制三角形?