2015-06-22 173 views
2

我有以下的數據幀,DF:熊貓據幀複雜的計算

 Year totalPubs ActualCitations 
0 1994   71  191.002034 
1 1995   77  2763.911781 
2 1996   69  2022.374474 
3 1997   78  3393.094951 

我想編寫的代碼,將做到以下幾點:currentyear的

引文/總前兩年

的totalPubs的

我想要的東西,以創建一個名爲影響因子的新列,並生成它,如下所示:

for index, row in df.iterrows(): 
    if row[0]>=1996: 
     df.at[index,'Impact Factor'] = df.at[index, 'ActualCitations']/(df.at[index-1, 'totalPubs'] + df.at[index-2, 'totalPubs']) 

回答

1

我相信下面你想要做什麼:

In [24]: 
df['New_Col'] = df['ActualCitations']/pd.rolling_sum(df['totalPubs'].shift(), window=2) 
df 

Out[24]: 
    Year totalPubs ActualCitations New_Col 
0 1994   71  191.002034  NaN 
1 1995   77  2763.911781  NaN 
2 1996   69  2022.374474 13.664692 
3 1997   78  3393.094951 23.240376 

所以上面使用rolling_sumshift產生前2年之和,我們再除以該值的引用值。