我有一個熊貓數據框以下格式在日期的區別:計算在熊貓的GroupBy對象
In [0]: df
Out[0]:
col1 col2 date
0 1 1 2015-01-01
1 1 2 2015-01-09
2 1 3 2015-01-10
3 2 1 2015-02-10
4 2 2 2015-02-10
5 2 3 2015-02-25
In [1]: df.dtypes
Out[1]:
col1 int64
col2 int64
date datetime64[ns]
dtype: object
我們要找到col2
對應日期的最大區別在連續元素之間的值(按日期分組),按col1
分組。假設有沒有大小1.
所需的輸出
In [2]: output
Out[2]:
col1 col2
1 1 # This is because the difference between 2015-01-09 and 2015-01-01 is the greatest
2 2 # This is because the difference between 2015-02-25 and 2015-02-10 is the greatest
真正df
有col1
,我們需要GROUPBY做很多計算值的組。這是可能的通過應用以下功能?請注意,日期已經是升序。
gb = df.groupby(col1)
gb.apply(right_maximum_date_difference)
所以,正如我在我的回答中指出的那樣,我認爲你在這個問題上有一個錯誤:「2015-01-09 - 2015-01-01」是*不是最大的。 –
2015-01-09和2015-01-01之間的差異爲8天。 2015-01-10和2015-01-09之間的差異爲1天。在這種情況下,我有興趣獲取對應於2015-01-01日期的「col2」的值,因爲差異最大。 – invoker
哦,所以你的意思是在同一組中的前一行。我不得不說這個問題是非常不清楚的。此外,它是未定義的大小爲1的組。 –