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

问题描述 投票:0回答:1

我有两个数据帧,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方式呢?

(我是熊猫新手)

python pandas dataframe
1个回答
1
投票

你可以简单地分配如下:

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

这有效的原因是因为pd.Series.map接受一个系列作为输入,所以我们以类似字典的方式使用s来映射来自df1的'K'的值。

当然,您应首先检查映射是否由df1中的“Name”唯一定义。

© www.soinside.com 2019 - 2024. All rights reserved.