我是python的新手,我正在尝试使用Pandas Data Frames。我有一个DF,当我将该DF传递到CSv文件并在excel中打开时,我的输出是这样的: -
Key Match Data
sf 111 877
hd 222 888
kg Blank 990
la Blank 0
因此,对于最后两行,匹配列中的数据为空白
现在我有另一个DF,就像这样: -
Key Match Data
sf 111 877
hd 222 888
kg 333 123
la 444 421
llk 555 421
jk 666 890
我想使用名为键的列中的数据,使用DF 2中匹配列中的数据填充第一个DF中的空白单元格。因此,当我转换为CSV时,最终DF将如下所示: -
Key Match Data
sf 111 877
hd 222 888
kg 333 990
la 444 0
如果有人可以帮助我,那就太好了。
如果问题没有正确构建,请道歉。我也是这个论坛的新手。
答案 0 :(得分:0)
加载后,我在第二个df上设置索引后调用map
来执行查找:
In [100]:
df['Match'] = df['Key'].map(df1.set_index('Key')['Match'])
df
Out[100]:
Key Match Data
0 sf 111 877
1 hd 222 888
2 kg 333 990
3 la 444 0
答案 1 :(得分:0)
如果您可以使用第二个数据框中的第一个数据框覆盖匹配列,则可以执行以下操作:
AncestorLevel
答案 2 :(得分:0)
最后我能够用
做到这一点df1 ['MATCH'] = df1.apply(lambda row:getall(row ['key'],df,row ['MATCH']),axis = 1)
然后我开发了getall()函数
** def getall(key,df,match): match1 =匹配
if (math.isnan(match)):
match1 = str(df.ix[key,'MATCH'][0])
return match1**