![](/img/trans.png)
[英]Python Pandas - Best way to add additional rows to Indexed data frames and manipulating them
[英]Manipulating Data Frames in Python(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中Match列中的数据填充第一个DF中的空白单元格,方法是使用Key列中的数据。 因此,当我转换为CSV时,最终的DF如下所示:-
Key Match Data
sf 111 877
hd 222 888
kg 333 990
la 444 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
如果您可以用第二个数据框架中的第一个覆盖第一个数据框架的匹配列,则可以执行以下操作:
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
最终我能够做到这一点
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**
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.