Pandas 数据帧combine()
方法
原文:https://www.studytonight.com/pandas/pandas-dataframe-combine-method
在本教程中,我们将学习 PythonPandasDataFrame.combine()
方法。它与另一个数据帧执行列组合。它使用func
将一个数据帧与其他数据帧组合,以元素方式组合列。结果数据帧的行和列索引将是这两者的并集。
下图显示了DataFrame.combine()
方法的语法。
句法
DataFrame.combine(other, func, fill_value=None, overwrite=True)
因素
其他:它表示要按列合并的另一个数据帧。
func: 表示以两个数列为输入,返回一个数列或一个标量的函数。它用于逐列合并两个数据帧。
fill_value: 为标量值,默认无。在将任何列传递给合并函数之前,要在 NaS 中填充的值。
覆盖:表示布尔(真或假),默认值为真。如果为真,则自身中不存在于其他中的列将被 NaNs 覆盖。
示例 1:使用DataFrame.combine()
方法将数据帧与另一个数据帧组合
以下示例显示了如何使用选择较小列的DataFrame.combine()
方法组合两个数据帧。
import pandas as pd
df1 = pd.DataFrame({'A': [2, 0, 5], 'B': [2, 0, 5]})
df2 = pd.DataFrame({'A': [3, 1,10], 'B': [4, 3, -4]})
take_smaller = lambda s1, s2: s1 if s1.sum() < s2.sum() else s2
print(df1.combine(df2, take_smaller))
一旦我们运行该程序,我们将获得以下输出。
甲乙 0 2 4 1 0 3 2 5 -4
示例 2:使用DataFrame.combine()
方法将数据帧与另一个数据帧组合
下面的例子类似于前面的例子。通过给DataFrame.combine()
函数赋予不同的功能来组合两个数据帧。
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'A': [2, 0, 5], 'B': [2, 2, -0.25]})
df2 = pd.DataFrame({'A': [3, 1,10], 'B': [3, 3, -4]})
print(df1.combine(df2, np.minimum))
print(df1.combine(df2, np.maximum))
一旦我们运行该程序,我们将获得以下输出。
甲乙 0 2 2.0 1 0 2.0 2 5 -4.0 甲乙 0 3 3.00 1 3.00 2 10-0.25
示例 3:通过填充缺失值来组合数据帧
以下示例显示了在将列传递给合并函数之前填充Nones
的DataFrame.combine()
方法中fill_value
的用法。
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'A': [2, 0, 5], 'B': [2, None, -0.25]})
df2 = pd.DataFrame({'A': [3, 1,None], 'B': [3, 3, -4]})
print(df1.combine(df2, np.minimum, fill_value=2))
print(df1.combine(df2, np.maximum,fill_value=-5))
一旦我们运行该程序,我们将获得以下输出。
甲乙 0 2 2.0 1 0 2.0 2 2 -4.0 甲乙 0 3 3.00 1 3.00 2 5-0.25
示例:如果两个数据帧中的相同元素为None
,则进行组合
如果两个数据帧中的同一元素为“无”,则保留“无”。下面的例子显示了同样的情况。
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'A': [0, 0], 'B': [None, 4]})
df2 = pd.DataFrame({'A': [1, 1], 'B': [None, 3]})
print(df1.combine(df2, np.minimum, fill_value=-2))
一旦我们运行该程序,我们将获得以下输出。
甲乙 0 0 -2.0 1 0 3.0
结论
在本教程中,我们学习了 Pandas DataFrame.combine()方法。我们学习了 DataFrame.combine()方法的语法和参数,并使用不同的参数组合了两个具有不同功能的 DataFrame。