如何使用从另一个数据帧获取的值在pandas中添加列

时间:2018-03-05 18:29:28

标签: python pandas dataframe

我有两个数据帧,df1和df2。 df1有2列'Name'和'K'。 df2有3列'A','B','C'

列B的值与df1'Name'的值相同。但现在我需要添加K列。

所以我试过

for t in range(len(df1)):
        whichvalue=t
        a=df1.iloc[whichvalue,:]
        Name=a['Name']

        knownetf=df2['B'].value_counts()[Name]
        etfs.loc(df2['B']==Name)['K']=a['K']

但这似乎不起作用 什么是好的pythonic方式呢?

(我是熊猫新手)

1 个答案:

答案 0 :(得分:1)

您可以简单地指定如下:

s = df1.set_index('Name')['K']
df2['K'] = df2['B'].map(s)

这可行的原因是pd.Series.map接受系列作为输入,因此我们以类似字典的方式使用s来映射' K'来自df1

当然,您应首先检查映射是否由' Name'唯一定义。在df1