我有两个数据帧,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方式呢?
(我是熊猫新手)
答案 0 :(得分:1)
您可以简单地指定如下:
s = df1.set_index('Name')['K']
df2['K'] = df2['B'].map(s)
这可行的原因是pd.Series.map
接受系列作为输入,因此我们以类似字典的方式使用s
来映射' K'来自df1
。
当然,您应首先检查映射是否由' Name'唯一定义。在df1
。