在 Python 的数据处理领域,Pandas库提供了丰富且实用的函数,帮助我们高效地处理和分析数据。今天,咱们就来深入探索 Pandas 库中四个功能独特的函数:combine、combine_first、update和compare。掌握了它们,我们在数据处理的道路上将会如虎添翼!
一、combine 函数:灵活的数据合并与计算
combine函数使用func将一个 DataFrame 与另一个DataFrame 进行合并,默认按列进行合并,新生成的 DataFrame 的行索引和列索引将是这两个DataFrame 索引的并集,最后返回生成的新的DataFrame对象。
1.函数原型
DataFrame.combine(other, func, overwrite=True, fill_value=None) |
2. 参数详解
-
other:这是要与调用者(即当前 DataFrame 或 Series)进行合并计算的另一个 DataFrame。
-
func:这是一个关键参数,它是一个自定义函数,用于指定如何对两个对应元素进行计算。这个函数接收两个参数,分别是调用者和other中的对应元素,返回值则是合并后的结果。
- fill_value:指定在其中一个对象中存在缺失值时使用这个填充值,然后再做合并处理。
-
overwrite:如果 overwrite=True(默认值),则在组合操作中,如果新数据(来自 other 对象)中有值,将覆盖原始数据中的对应值。如果 overwrite=False,则只有在原始数据中为缺失值(NaN 或 None)的位置,才会用新数据中的值进行填充,不会覆盖原始数据中已有的非缺失值。
3. 示例
1)定义两个没有空值的DataFrame定义一个lamada函数,然后合并
import pandas as pd
df1 = pd.DataFrame({'A': [0, 0], 'B': [4, 4]})
df2 = pd.DataFrame({'A': [1, 1], 'B': [3, 3]})
print(df1)
print(df2)
take_smaller = lambda s1, s2: s1 if s1.sum() < s2.sum() else s2
df3 = df1.combine(df2, take_smaller)
print(df3)
输出结果:
A B
0 0 4
1 0 4
A B
0 1 3
1 1 3
#合并的df3显示如下
A B
0 0 3
1 0 3
2)定义有空值的DataFrame,不传fill_value参数然后合并
import pandas as pd
df1 = pd.DataFrame({'A': [0, 0], 'B': [None, 4]})
df2 = pd.DataFrame({'A&#