python - 根据 Pandas 中的另一个列值更改列值

标签 python pandas

我在 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+1end-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/

相关文章:

python - 如何将 Numpy 数组转为高效设置?

python - 在 Pandas 中,如何创建一个数据透视表来返回另一列中的最大值的相应列值?

python - 如何用pandas-python递归地构造一列数据框?

python - Pandas,检查 datetimeindex 的重采样 30 分钟时间段中是否存在时间戳值

python - 如何在python中剪切一个pandas列,并使另一列的长度相等?

python - 使用我自己的数据进行文本分类的 Tensorflow 错误

python - 使用 Extra 和 Filter 的 Django OR 查询

python - Swift,如何从 Pandas JSON 文件导入 JSON 文件

Python:读取文件以将数据存储在数组中的有效方法

python - 使用 Python 获取鼠标增量! (在 Linux 中)