2015-10-20 39 views
0

我想通過df1的索引和日期範圍(包含左側)通過df2上的「開始日期」列比較日期,以便我可以獲取相應的kwH值爲了它。如何將索引與python上的某行進行比較

例如:

DF1包括:

  50  51 
4/3/2013 326.32 193.1 
7/2/2013 324.2 192.1 
3/5/2014 234.2 0 
4/6/2015 302.1 23 

^ (指數)的

DF2組成:

 Start Date End Date  kWh  
0 4/3/2013 5/3/2013  76,640 
1 5/3/2013 9/7/2013  96,640 
2 1/3/2014 4/7/2014  17,640 
3 4/7/2014 8/7/2014  16,640 
4 8/7/2014 2/3/2015  19,291 
5 2/3/2015 4/3/2015  18,291 
6 4/3/2015 5/7/2015  86,640  

如何寫另一列(千瓦時)以df1爲基礎,其日期指數落入「開始日期」範圍內df2上的'結束日期'欄。 (在這種情況下,只注重了「開始日期」(左含)

爲例:

  50  51  kWh 
4/3/2013 326.32 193.1 76640 
7/2/2013 324.2 192.1 96640 
3/5/2014 234.2 0  17640 
4/6/2015 302.1 23  86640 

什麼是實現這一目標的最簡單的方法

回答

1

這將設置值的df1的「度」山坳從df2,它開始和結束日期包括df1的特定索引那些千瓦時值的總和。希望它可以幫助

df1['kWh'] = map(df2[(df2['Start Date'] >= x) & (df2['End Date'] < x)]['kWh'].sum, df1.index) 
+0

我很困惑,爲什麼你會總結? – Techno04335

+0

Wel,'df2'中可能有幾行,滿足給定的條件。如果你確定只有一行 - 只是沒有'sum',在這種情況下,你也可以刪除實現這個代碼的'map'運算符 – pausag

+0

我得到了'ValueError:No axis named 2013-04- 03 00:00:00爲對象類型' – Techno04335

相關問題