如何在pandas中添加一列,其中的值取自另一个datafram

2024-09-28 21:58:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧,df1和df2。 df1有两列'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']

但这似乎不起作用 什么是一个好的Python方式做这件事

(我是新来的熊猫)


Tags: 数据nameinforlenvaluerangeloc
1条回答
网友
1楼 · 发布于 2024-09-28 21:58:34

您可以简单地分配如下:

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

之所以这样做是因为pd.Series.map接受一个序列作为输入,所以我们以类似字典的方式使用sdf1映射“K”的值

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

相关问题 更多 >