我有一個的大數據幀充當整數和名之間的映射更改值:如何使用數據幀的映射到另一個數據幀
from StringIO import StringIO
import pandas as pd
gene_int_map = pd.read_table(StringIO("""Gene Int
Mt-nd1 2
Cers2 4
Nampt 10
Madd 20
Zmiz1 21
Syt1 26
Syt5 30
Syt7 32
Cdca7 34
Ablim2 42
Elp5 43
Clic1 98
Ece2 100"""), sep="\s+")
然後我還有一個數據幀,我想給Gene
列轉換爲在圖中給出的整數(在to_convert
的名稱可以被覆蓋):
to_convert = pd.read_table(StringIO("""Gene Term
Mt-nd1 GO:0005739
Mt-nd1 GO:0005743
Mt-nd1 GO:0016021
Mt-nd1 GO:0030425
Mt-nd1 GO:0043025
Mt-nd1 GO:0070469
Mt-nd1 GO:0005623
Mt-nd1 GO:0005622
Mt-nd1 GO:0005737
Madd GO:0016021
Madd GO:0045202
Madd GO:0005886
Zmiz1 GO:0005654
Zmiz1 GO:0043231
Cdca7 GO:0005622
Cdca7 GO:0005623
Cdca7 GO:0005737
Cdca7 GO:0005634
Cdca7 GO:0005654"""), sep="\s+")
就像我說的,我想要做的是從gene_int_map
整數值替換to_convert
名稱。
我相信這是超級簡單的,但似乎沒有合併選項的排列會做到這一點。我無法獲得任何布爾型掩碼。
Ps。我也想替換gene_int_map
在一列數據幀與整數值:
simple_series = pd.read_table(StringIO("""Gene
Ablim2
Elp5
Clic1
Ece2"""), squeeze=False)
這將是很好,如果答案是足夠一般包括這種情況。在gene_int_map
的「基因」列
'AttributeError:'DataFrame'對象沒有屬性'map''你以前的答案似乎工作。 –
@TheUnfunCat:我改變了它,因爲'map'比'replace'更快,同時仍然允許使用字典,在我看來它非常乾淨和直接。無論如何,你不應該因爲最新的變化而導致錯誤。 :-) – Peque
我真的開始喜歡這個答案了,謝謝! –