如何转换为熊猫日期时间到大熊猫中的整数?

时间:2018-09-27 11:50:24

标签: pandas datetime dataframe integer days

如何用pandas转换看起来像这样的日期格式:

2018-08-27 00:00:00.000
2018-08-26 00:00:00.000
2018-08-24 00:00:00.000
2018-08-24 00:00:00.000
2018-08-24 00:00:00.000
2018-08-24 00:00:00.000
2018-08-23 00:00:00.000
2018-08-23 00:00:00.000
2018-08-20 00:00:00.000
2018-08-20 00:00:00.000

以整数格式计算自2010年1月1日以来的天数?

2 个答案:

答案 0 :(得分:2)

从列中减去日期Series.sub,并从Series.dt.days中将时间增量转换为天数:

df['days'] = pd.to_datetime(df['date']).sub(pd.Timestamp('2010-01-01')).dt.days
print (df)
                      date  days
0  2018-08-27 00:00:00.000  3160
1  2018-08-26 00:00:00.000  3159
2  2018-08-24 00:00:00.000  3157
3  2018-08-24 00:00:00.000  3157
4  2018-08-24 00:00:00.000  3157
5  2018-08-24 00:00:00.000  3157
6  2018-08-23 00:00:00.000  3156
7  2018-08-23 00:00:00.000  3156
8  2018-08-20 00:00:00.000  3153
9  2018-08-20 00:00:00.000  3153

答案 1 :(得分:1)

您可以像在jezrael在他的答案中提到的那样直接将sub应用于pandas的Timestamp列,这非常直接。

如果您想要一个接一个地连续做同样的事情,可以借助map来做到这一点

base_date = pd.Timestamp('2010-01-01 00:00:00')

df['days'] = df['date'].map(lambda date : (pd.Timestamp(date) - base_date).days )