當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。