pandas - 向数据框中的所有值添加一个

标签 pandas dataframe

我有一个如下所示的数据框。我想为每一行中的所有值添加一个。我是这个论坛和 python 的新手,所以我无法概念化如何做到这一点。我需要为每个值加 1。我打算使用贝叶斯概率,当我将它们相乘时,后验概率将为 0。附注。我也是概率的新手,但其他人应用了相同的方法。提前感谢您的帮助。我正在使用 Pandas 来做到这一点。

Disease  Gene1  Gene2  Gene3 Gene4 
D1    0    0    25   0  
D2    0    0    0    0  
D3    0    17   0    16  
D4    24   0    0    0  
D5    0    0    0    0  
D6    0    32   0    11  
D7    0    0    0    0  
D8    4    0    0    0

最佳答案

这是您的数据框:

df = pd.DataFrame({
    "Disease":["D{}".format(i) for i in range(1,9)],
    "Gene1":[0,0,0,24,0,0,0,4],
    "Gene2":[0,0,17,0,0,32,0,0],
    "Gene3":[25,0,0,0,0,0,0,0],
    "Gene4":[0,0,16,0,0,11,0,0]})

  Disease  Gene1  Gene2  Gene3  Gene4
0      D1      0      0     25      0
1      D2      0      0      0      0
2      D3      0     17      0     16
3      D4     24      0      0      0
4      D5      0      0      0      0
5      D6      0     32      0     11
6      D7      0      0      0      0
7      D8      4      0      0      0

最简单的方法是这样做
df += 1

但是,由于您有一列是字符串(疾病列)

这是行不通的。

但是我们可以方便地将疾病列设置为索引,如下所示:
df.set_index('Disease', inplace=True)

现在你的数据框看起来像这样:
         Gene1  Gene2  Gene3  Gene4
Disease                            
D1           0      0     25      0
D2           0      0      0      0
D3           0     17      0     16
D4          24      0      0      0
D5           0      0      0      0
D6           0     32      0     11
D7           0      0      0      0
D8           4      0      0      0

如果我们这样做 df += 1现在,我们得到:
         Gene1  Gene2  Gene3  Gene4
Disease                            
D1           1      1     26      1
D2           1      1      1      1
D3           1     18      1     17
D4          25      1      1      1
D5           1      1      1      1
D6           1     33      1     12
D7           1      1      1      1
D8           5      1      1      1

因为加号操作只作用于数据列,而不作用于索引。

您也可以按列执行此操作,如下所示:
df.Gene1 = df.Gene1 + 1

关于pandas - 向数据框中的所有值添加一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30794525/

相关文章:

r - 使用列表列规范化数据框

r - 通过数据框在 R 中使用重复的 colnames 获取数据框

r - 使用多个度量列将数据从长格式转换为宽格式

python - 循环 pandas 数据帧的每一行

r - 如何使用来自另一个数据帧的数据创建数据帧?

python - 字典键用字典值替换 pandas 数据框列中的字符串并执行评估

python - Pandas Groupby 累计金额

python - Pandas Dataframe 用另一列的值替换部分字符串

pandas - pandas 数据框的数据透视表中的计数

python - 每日数据,每 3 天重新采样,有效计算尾随 5 天