2016-06-09 59 views
0

我有兩個不同長度的數據幀(df,df1)。他們共享一個類似的標籤"collo_number"。我想在第一個數據幀中搜索每個collo_number的第二個數據幀。問題是第二個日期框架對於每個collo_nummer包含不同日期的多行。所以我想總結這些日期並將其添加到第一個數據庫的新列中。Python熊貓通過兩個不同長度的數據幀循環高效

我現在使用一個循環,但它相當慢,必須在一週內執行此操作7天。有沒有辦法獲得更好的表現?我嘗試了多個解決方案,但不斷得到錯誤,我無法使用不同長度的兩個數據庫的等號。幫助真的很感激!這是一個工作的例子,但表現相當糟糕。

df5=[df1.loc[(df1.index == nasa) & (df1.afleverdag == x1) & (df1.ind_init_actie=="N"), "aantal_colli"].sum() for nasa in df.collonr] 
+1

你能發表一個數據框怎麼樣的例子嗎? – user3820991

回答

0

您的描述有點模糊(因此我的評論)。首先你做好是選擇你要搜索的數據框的行:

dftmp = df1[(df1.afleverdag==x1) & (df1.ind_init_actie=='N')] 

,這樣你就不會在循環每一個項目做到這一點。 二,使用.groupby

newseries = dftmp['aantal_colli'].groupby(dftmp.index).sum() 
newseries = newseries.ix[df.collonr.unique()]