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