学科分类
目录
数据分析

合并重叠数据

在处理数据的过程中,当一个DataFrame对象中出现了缺失数据,而这些缺失数据我们希望可以使用其他DataFrame对象中的数据填充,这时可以通过combine_first()方法为缺失数据填充。

combine_first()方法的语法格式如下:

combine_first(other)

上述方法中只有一个参数other,该参数用于接收填充缺失值的DataFrame对象。

假设现在有left表与right表,其中left表中存在3个缺失的数据,而right表中的数据是完整的,并且right表与left表有相同的索引名,此时我们可以使用right表中的数据来填充left表的缺失数据,得到一个新的result表,如图1所示。

img

图1 合并重叠数据

需要注意的是,尽管right表中的行索引与left表的行索引顺序不同,当用right表的数据替换left表的NaN值时,替换数据与缺失数据的索引位置仍然是相同的。例如,left表中位于第0行第A列的“NaN”需要使用right表中相同位置的数据“C1”来替换。

为了让大家更好地理解,接下来,编写代码实现上述合并重叠数据的过程,即使用right表的数据替换left表的缺失数据,具体代码如下。

In [32]: import pandas as pd
         import numpy as np
         from numpy import NAN
         left = pd.DataFrame({'A': [np.nan, 'A1', 'A2', 'A3'],
                              'B': [np.nan, 'B1', np.nan, 'B3'],
                              'key': ['K0', 'K1', 'K2', 'K3']})
         right = pd.DataFrame({'A': ['C0', 'C1','C2'],'B': ['D0', 'D1','D2']},
                              index=[1,0,2])
         # 用right的数据填充left缺失的部分
         left.combine_first(right) 
  Out[32]:
  A  B key
0 C1 D1 K0
1  A1 B1 K1
2 A2 D2 K2
3 A3 B3 K3

需要强调的是,使用combine_first()方法合并两个DataFrame对象时,必须确保它们的行索引和列索引有重叠的部分。

点击此处
隐藏目录