在Python中操作数据帧(Pandas)

2024-03-29 14:14:00 发布

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

我对python非常陌生,我正在尝试处理Pandas数据帧。我有一个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

如果有人能帮我,那就太好了。你知道吗

如果问题的框架不正确,请道歉。我也是这个论坛的新手。你知道吗


Tags: 文件csv数据keypandasdfdatamatch
3条回答

加载后,我会在第二个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

我终于可以用它来做这件事了

df1['MATCH']=df1.apply(lambda行:getall(行['key'],df,行['MATCH']),轴=1)

然后我开发了getall()函数

**def getall(键、df、匹配): match1=匹配

if  (math.isnan(match)):
    match1 = str(df.ix[key,'MATCH'][0])
return match1**

如果可以用第二个数据帧的匹配列覆盖第一个数据帧的匹配列,则可以执行以下操作:

In [6]: df1 = df1.set_index('Key')

In [7]: df2 = df2.set_index('Key')

In [8]: df1['Match'] = df2['Match']

In [10]: df1
Out[10]: 
     Match  Data
Key             
sf     111   877
hd     222   888
kg     333   990
la     444     0

相关问题 更多 >