当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.DataFrame.combine用法及代码示例


用法:

DataFrame.combine(other, func, fill_value=None, overwrite=True)

与另一个 DataFrame 执行按列组合。

使用 func 将 DataFrame 与 other DataFrame 组合以按元素组合列。结果 DataFrame 的行和列索引将是两者的并集。

参数

other DataFrame

要按列合并的 DataFrame。

func函数

将两个系列作为输入并返回系列或标量的函数。用于逐列合并两个 DataFrame 。

fill_value标量值,默认无

在将任何列传递给合并函数之前填充 NaN 的值。

overwrite布尔值,默认为真

如果为 True,self 中不存在于 other 中的列将被 NaN 覆盖。

返回

DataFrame

提供的 DataFrame 的组合。

例子

使用选择较小列的简单函数进行组合。

>>> df1 = pd.DataFrame({'A':[0, 0], 'B':[4, 4]})
>>> df2 = pd.DataFrame({'A':[1, 1], 'B':[3, 3]})
>>> take_smaller = lambda s1, s2:s1 if s1.sum() < s2.sum() else s2
>>> df1.combine(df2, take_smaller)
   A  B
0  0  3
1  0  3

使用真正的逐元素组合函数的示例。

>>> df1 = pd.DataFrame({'A':[5, 0], 'B':[2, 4]})
>>> df2 = pd.DataFrame({'A':[1, 1], 'B':[3, 3]})
>>> df1.combine(df2, np.minimum)
   A  B
0  1  2
1  0  3

在将列传递给合并函数之前,使用fill_value 填充无。

>>> df1 = pd.DataFrame({'A':[0, 0], 'B':[None, 4]})
>>> df2 = pd.DataFrame({'A':[1, 1], 'B':[3, 3]})
>>> df1.combine(df2, take_smaller, fill_value=-5)
   A    B
0  0 -5.0
1  0  4.0

但是,如果两个数据帧中的相同元素为 None,则保留 None

>>> df1 = pd.DataFrame({'A':[0, 0], 'B':[None, 4]})
>>> df2 = pd.DataFrame({'A':[1, 1], 'B':[None, 3]})
>>> df1.combine(df2, take_smaller, fill_value=-5)
    A    B
0  0 -5.0
1  0  3.0

演示overwrite 的使用和数据帧之间轴不同时的行为的示例。

>>> df1 = pd.DataFrame({'A':[0, 0], 'B':[4, 4]})
>>> df2 = pd.DataFrame({'B':[3, 3], 'C':[-10, 1], }, index=[1, 2])
>>> df1.combine(df2, take_smaller)
     A    B     C
0  NaN  NaN   NaN
1  NaN  3.0 -10.0
2  NaN  3.0   1.0
>>> df1.combine(df2, take_smaller, overwrite=False)
     A    B     C
0  0.0  NaN   NaN
1  0.0  3.0 -10.0
2  NaN  3.0   1.0

展示传入 DataFrame 的偏好。

>>> df2 = pd.DataFrame({'B':[3, 3], 'C':[1, 1], }, index=[1, 2])
>>> df2.combine(df1, take_smaller)
   A    B   C
0  0.0  NaN NaN
1  0.0  3.0 NaN
2  NaN  3.0 NaN
>>> df2.combine(df1, take_smaller, overwrite=False)
     A    B   C
0  0.0  NaN NaN
1  0.0  3.0 1.0
2  NaN  3.0 1.0

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.combine。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。