在Python pandas数据框中添加计数器作为附加列

rshar

我有以下数据框作为我的python脚本的输出。我想添加每pmid计数的另一列,并将计数器添加到第一行,并保留其他行。

数据框如下所示:

df

       PMID gene_symbol    gene_label gene_mentions
0  33377242       MTHFR  Matched Gene             2
1  33414971       CSF3R  Matched Gene            13
2  33414971         BCR    Other Gene             2
3  33414971        ABL1  Matched Gene             1
4  33414971        ESR1  Matched Gene             1
5  33414971      NDUFB3    Other Gene             1
6  33414971        CSF3    Other Gene             1
7  33414971        TP53  Matched Gene             2
8  33414971         SRC  Matched Gene             1
9  33414971        JAK1  Matched Gene             1

预期的结果是:

       PMID gene_symbol    gene_label gene_mentions   count
0  33377242       MTHFR  Matched Gene             2   1
1  33414971       CSF3R  Matched Gene            13   9
2  33414971         BCR    Other Gene             2   9
3  33414971        ABL1  Matched Gene             1   9
4  33414971        ESR1  Matched Gene             1   9
5  33414971      NDUFB3    Other Gene             1   9
6  33414971        CSF3    Other Gene             1   9
7  33414971        TP53  Matched Gene             2   9
8  33414971         SRC  Matched Gene             1   9
9  33414971        JAK1  Matched Gene             1   9
10 33414972        MAK2  Matched Gene             1   1

如何获得此输出?

谢谢

广晃

您可以使用groupby().transform以下命令为每行添加计数

df['count'] = df.groupby('PMID')['PMID'].transform('size')

输出:

       PMID gene_symbol    gene_label  gene_mentions  count
0  33377242       MTHFR  Matched Gene              2      1
1  33414971       CSF3R  Matched Gene             13      9
2  33414971         BCR    Other Gene              2      9
3  33414971        ABL1  Matched Gene              1      9
4  33414971        ESR1  Matched Gene              1      9
5  33414971      NDUFB3    Other Gene              1      9
6  33414971        CSF3    Other Gene              1      9
7  33414971        TP53  Matched Gene              2      9
8  33414971         SRC  Matched Gene              1      9
9  33414971        JAK1  Matched Gene              1      9

现在,如果您真的只想对每一行进行计数,则PMID可以使用mask

df['count'] = df['count'].mask(df['PMID'].duplicated())

然后您将拥有:

       PMID gene_symbol    gene_label  gene_mentions  count
0  33377242       MTHFR  Matched Gene              2    1.0
1  33414971       CSF3R  Matched Gene             13    9.0
2  33414971         BCR    Other Gene              2    NaN
3  33414971        ABL1  Matched Gene              1    NaN
4  33414971        ESR1  Matched Gene              1    NaN
5  33414971      NDUFB3    Other Gene              1    NaN
6  33414971        CSF3    Other Gene              1    NaN
7  33414971        TP53  Matched Gene              2    NaN
8  33414971         SRC  Matched Gene              1    NaN
9  33414971        JAK1  Matched Gene              1    NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据值添加计数器Python DataFrame

如何为递归函数添加计数器?[Python]

如何在Python中向用户定义函数添加计数器?

如何在python的递归函数中添加计数器

根据python pandas中的现有计数器添加新计数器

过滤数据框,合并数据并在python中添加计数

Python Pandas:在我的数据框中添加一个对变量进行计数的列

反复添加计算的列,然后仅将新数据添加到Pandas数据框(python 3.7.1)

如何在不同的进程python中增加计数器?

计算Python中数据框每个月的计数器

避免在Python循环中增加计数器

熊猫如何添加计数器以匹配两个数据框列之间的行

python pandas在数据框列中添加列表作为默认值

在python中分配计数器时增加计数器

Python将列添加到Pandas数据框中,这是另一列中的列表元素的计数

在jinja计数器中添加python变量

合并具有相同日期的行,并在pandas中添加计数器列

Python:在Pandas数据框中添加一列

按列排序并使用熊猫附加计数器

如何在 python pandas 中添加条件计数作为新列?

python中的计数器汇总

比较Python中的计数器列表

Prolog中的Python计数器

用计数器在python中循环?

python中的游戏计数器

如何基于Pandas数据框的条件增加计数器?

避免在Python循环中有条件地增加计数器

如何在pandas数据框中扩展嵌套列并附加回python中的原始数据框

在Python 3中使用变量的值作为计数器