嗯,這是一個有點難以解釋....熊貓,結合2個dataframes信息和一個字典
假設你有2個大熊貓dataframes和1個字典。
df1 = pd.DataFrame(np.random.randn(5, 3), columns=['b', 'c','d'])
df1['a'] = pd.Series(['1 A1-1','3 A1-1','8 A1-2','17 A1-3','45 A1-16'], index=df1.index)
df1 = df1.reindex_axis(sorted(df1.columns), axis=1)
df2 = pd.DataFrame([['1 A1-1',5],['2 A1-1',8],['3 A1-1',10],['8 A1-2',4],['17 A1-3',1],['45 A1-16',2]], columns = ['m','n'])
dt = {'A1-1':100, 'A1-2':150, 'A1-3':200, 'A1-4':250, 'A1-5':300, 'A1-16':950}
df1['a']
和df2['m']
含有IDs
,一些是相同的。 df2['n']
包含附加值。 dt
包含基本值ID
團狀A1-1
,A1-2
等
我現在想比較/在df1
,df2
和dt
讓我能到一個新的列添加到df1
結合數據: 每當IDs
在df1['a']
和df2['m']
是相同的基礎值從字典中相同的字符串部分被添加到相應的df2['n']
和結果然後轉移到df1['e']
新列。
一個主要的問題我已經是字符串中的識別碼與字典鍵操作:e.g '1 A1-1'
在df1
和df2
和'A1-1'
在dt
- 不知道如何將它們進行比較。
最有用的將是一個結果,如df1['e'] = pd.Series([105,110,154,201,952], index = df1.index)
。
感謝您的幫助。
非常好!非常感謝。雖然,在這種情況下,我並不完全掌握map的功能。請你給我一個簡單的解釋,以便如此善意。 – mati
我嘗試編輯答案。請檢查一下。 – jezrael