該DataFrame.add(fill_value=my_value)方法允許你添加到數(shù)據(jù)幀,并選擇一個單一的值my_value將用于替換缺失值。另一方面,它DataFrame.fillna為填充缺失值提供了更大的靈活性(例如,允許您用每列的最后一個有效值填充尾隨缺失值),但只能應用于已經存在的數(shù)據(jù)幀。有沒有什么方法可以在使用時DataFrame.fillna在添加兩個數(shù)據(jù)幀期間使用類似的東西來填充缺失值DataFrame.add,而不是單個值?例如。我想執(zhí)行相當于import pandas as pdA = pd.Series(data=[1,2,3], index=['a', 'b', 'c'])B = pd.Series(data=[1,2,3], index=['b', 'c', 'd'])frame = pd.DataFrame({'a': A, 'b': B})frame = frame.fillna(method='pad') # pad trailing missing values with last valid ones, column-wiseframe = frame.fillna(value=0) # pad (remaining) leading values with zerosresult = frame.sum(axis=1)但使用A.add(B, unknown_params). 如果那不可用,有沒有比我目前正在做的更有效的其他方法?
1 回答

達令說
TA貢獻1821條經驗 獲得超6個贊
不存在執(zhí)行所有操作的通用魔法方法。您可以創(chuàng)建一個函數(shù),利用方法鏈并使用pd.DataFrame.pipe使您的代碼更清晰:
def fill_sum(df):
return df.fillna(method='pad').fillna(0).sum(1)
frame = pd.DataFrame({'a': A, 'b': B})
frame = frame.pipe(fill_sum)
print(frame)
a 1.0
b 3.0
c 5.0
d 6.0
dtype: float64
添加回答
舉報
0/150
提交
取消