如果可以匹配键,则用字典值填充列

时间:2019-07-14 17:59:45

标签: python pandas dictionary

我有一个DataFrame,其中包含“键”和“值”。在另一个datframe中,我只有键。如果键可以匹配,我希望第二个数据框填充新列。最好看一下示例:

df = pd.DataFrame({'text':['bla','bla2','hi'], 'value':['hello','morning','random']})

df1 = pd.DataFrame({'text':['bla','x','hi','y','bla2','hi','bla']})

我希望输出看起来像这样:

df1
    text     value
0   bla      hello
1   x           
2   hi       random  
3   y
4   bla2     morning
5   hi       random
6   bla      hello

我认为,如果我以df为键,以text为值,从value创建一个字典,这样做是最简单的:y=pd.Series(df.value.values,index=df.text).to_dict()看起来像这样:y={'bla': 'hello', 'bla2': 'morning', 'hi': 'random'} 但现在我不知道该如何进行“匹配”

1 个答案:

答案 0 :(得分:0)

具有Dataframe.merge功能:

In [70]: df.merge(df1, how='right', on='text').fillna('')                                                                       
Out[70]: 
   text    value
0   bla    hello
1   bla    hello
2  bla2  morning
3    hi   random
4    hi   random
5     x         
6     y