簡體   English   中英

遍歷函數的替代方法,以從多個Pandas系列中獲取輸入

[英]Alternatives to looping through a function taking inputs from several Pandas series

我使用Pandas已有一段時間了,但直到現在還沒有遇到這樣做的需要。 這是設置。 我有幾個熊貓系列(它們的索引完全相同),比如A,B和C,以及一個復雜的函數func()。 我試圖做的(以一種非熊貓有效的方式)是遍歷應用func()的系列的索引。

D = pandas.Series(index=A.index) # First create an empty Series
for i in range(len(A)):
    D[i] = func(A[i], B[i], C[i])

考慮到這本質上是基於數組的操作,是否有一種熊貓有效的方法來執行上述操作? 我看了pandas.DataFrame.apply,但示例顯示了僅包含一個系列參數的簡單函數(例如numpy.sqrt())的應用。

如果只有pd.Series,則函數也應返回一個series。

因此,

D = func(A, B, C)

應該產生D為pd.Series,這是在A,B和C值上的向量化結果。

如果要在DataFrame上創建新列,可以通過以下方式解決它:

df.loc[:,'new column'] = \
        df.loc[:,'data column'].\
            apply(lambda x: func(x, A[x.name], B[x.name], C[x.name]), axis=1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM