有了這個是你的數據框:
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
如果你的數據框是'df',那麼'df + 1'就可以工作。 numpy和pandas在將標量添加到數組時將它稱爲「廣播」。 – JohnE