我有以下種類計算的時間間隔,取決於月份數據幀熊貓
id,Date
1,2015-01-23
2,2015-02-20
3,2016-03-16
日期幀每個月我要計算多少天會的日期和最後一天之間相應月份的
id,Date,LastDay,Interval
1,2015-01-23,2015-01-31,8
2,2015-02-20,2015-02-28,8
3,2016-03-16,2016-03-31,15
我有以下種類計算的時間間隔,取決於月份數據幀熊貓
id,Date
1,2015-01-23
2,2015-02-20
3,2016-03-16
日期幀每個月我要計算多少天會的日期和最後一天之間相應月份的
id,Date,LastDay,Interval
1,2015-01-23,2015-01-31,8
2,2015-02-20,2015-02-28,8
3,2016-03-16,2016-03-31,15
所以只要Date
的D型已經datetime
那麼下面應該工作:
In[109]:
from pandas.tseries.offsets import *
df['LastDay'] = df['Date'] + MonthEnd()
df['Interval'] = (df['LastDay'] - df['Date']).dt.days
df
Out[109]:
id Date LastDay Interval
0 1 2015-01-23 2015-01-31 8
1 2 2015-02-20 2015-02-28 8
2 3 2016-03-16 2016-03-31 15
012通過添加
offset,在這種情況下月底,現有的日期
df['Date'] = pd.to_datetime(df['Date'])
所以這個計算的最後一天:
如果需要轉換使用to_datetime
列。
然後,我們從日期減去LASTDAY,這將返回一個timedelta,這有一個成員,以獲得天dt.days
編輯的只是數量
爲了處理情況的日期已經是月末,您可以減去一天,然後添加月末偏移量:
In[117]:
from pandas.tseries.offsets import *
df['LastDay'] = (df['Date'] + DateOffset(days=-1)) + MonthEnd()
df['Interval'] = (df['LastDay'] - df['Date']).dt.days
df
Out[117]:
id Date LastDay Interval
0 1 2015-01-23 2015-01-31 8
1 2 2015-02-20 2015-02-28 8
2 3 2016-03-16 2016-03-31 15
3 4 2015-01-31 2015-01-31 0
4 5 2015-01-01 2015-01-31 30
和您有什麼TRIED? – void
你似乎在使用熊貓。請在你的問題中提及這一點。 –
關於如何在StackOverflow上查找一個月的最後一天,有幾個簡單的答案,例如https://stackoverflow.com/questions/42950/get-last-day-of-the-month-in-python。一旦你有了這一點,計算天數只是兩個日期的差異。 –