我有以下种类计算的时间间隔,取决于月份数据帧熊猫
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。一旦你有了这一点,计算天数只是两个日期的差异。 –