減去兩列並使用apply 與transform 取得平均值
考慮下列資料框:
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],<pre class="brush:php;toolbar:false"> 'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'], 'C': np.random.randn(8), 'D': np.random.randn(8)}) A B C D
0 foo 一 0.162003 0.087469
1 酒吧一 -1.156319 -1.526272 f🎜>1 酒吧一 -1.156319 -1.526272 f. -1.666304
3 小節三 -2.026673 -0.322057
4 富二 0.411452 -0.954371
5 小節二 0.765878 -0.095960.095> 0.678091
7 foo 三 -1.789842 -1.130922
套用與轉換
df.groupby('A').apply(lambda x: (x['C'] - x['D']))
這將傳回一個與原始資料框形狀相同的資料框,其中每個單元格包含應用於對應群組的 lambda函數的結果。的平均值對應組的C 列和 D列之間。 >
apply 將整個群組作為DataFrame 隱式傳遞給lambda函數。只能用於執行對各個列進行計算。傳回一個值。或任何其他非標量值,則會引發錯誤。它不是單一df.groupby('A').transform(lambda x: (x['C'] - x['D']).mean())
apply和transform是兩個強大的方法,可用於對資料幀執行groupby操作。為了有效地使用它們,了解這兩種方法之間的差異非常重要。
以上是在 Pandas DataFrame 中減去兩列併計算平均值時,「apply」和「transform」有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!