在Python中操纵数据框架(Pandas)

时间:2016-01-05 14:11:35

标签: python csv pandas

我是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

如果有人可以帮助我,那就太好了。

如果问题没有正确构建,请道歉。我也是这个论坛的新手。

3 个答案:

答案 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**