gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:04:13 25 4
gpt4 key购买 nike

我有一个如下所示的数据框。我想为每一行中的所有值添加一个。我是这个论坛和 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com