用Pandas更改行上的值

2024-05-19 14:00:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,例如:

df.columns = ["qseqid", "sseqid", "pident", "length", "mismatch", "gapopen","qstart", "qend", "sstart", "send", "evalue", "bitscore"]

最后,我们的想法是创建一个名为strand的新列

如果start中的值大于end,则在相应的行中添加一个+,如果start小于end,则添加相同的-。你知道吗

这是我的密码:

for a, b in zip(df["qstart"],df["qend"]):
    if a > b:
        df['e'] = '+'
    elif a < b:
        df.['e'] = '-'

但是我在列串中得到的只是-签名,即使qstart中的值高于qend

谢谢你的帮助

测向:

qseqid  sseqid  pident  length  mismatch    gapopen qstart  qend    sstart  send    evalue  bitscore
scaffold_1  test    25.5    337 166 9   2   20  27  310 1.0e-16 94.0
scaffold_1  tes2    27.0    278 163 9   500 20  222 487 1.e-16  94.0
scaffold_1  tes4    35.5    166 93  2   3   10  63  227 2.e-15  89.7

我应该得到的休息:

qseqid  sseqid  pident  length  mismatch    gapopen qstart  qend    sstart  send    evalue  bitscore    strand
scaffold_1  test    25.5    337 166 9   2   20  27  310 1.0e-16 94.0    +
scaffold_1  tes2    27.0    278 163 9   500 20  222 487 1.e-16  94.0    -
scaffold_1  tes4    35.5    166 93  2   3   10  63  227 2.e-15  89.7    +

其他部分:

0个

我有一个df,例如:

qseqid  sseqid  pident  length  mismatch    gapopen qstart  qend    sstart  send    evalue  bitscore
scaffold_1  test    25.5    337 166 9   2   20  27  310 1.0e-16 94.0
scaffold_1  tes2    27.0    278 163 9   500 20  222 487 1.e-16  94.0
scaffold_1  tes4    35.5    166 93  2   3   10  63  227 2.e-15  89.7

我想改变df.qstartds.qend中的值,如果df.qstart>df.qstart

这里是:

qseqid  sseqid  pident  length  mismatch    gapopen qstart  qend    sstart  send    evalue  bitscore
    scaffold_1  test    25.5    337 166 9   2   20  27  310 1.0e-16 94.0
    scaffold_1  tes2    27.0    278 163 9   20 500  222 487 1.e-16  94.0
    scaffold_1  tes4    35.5    166 93  2   3   10  63  227 2.e-15  89.7 

正如你所能看到的,SE500代替了20,谢谢你的帮助


Tags: testsenddflengthscaffoldmismatchsstartsseqid