将pandas datetime列yyyy-mm-dd转换为YYYYMMDD [英] convert pandas datetime column yyyy-mm-dd to YYYYMMDD

查看:114
本文介绍了将pandas datetime列yyyy-mm-dd转换为YYYYMMDD的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有datetime列的dateframe,格式为yyyy-mm-dd.

I have a dateframe with datetime column in the format yyyy-mm-dd.

我想以整数格式yyyymmdd来拥有它.我不断使用此

I would like to have it in interger format yyyymmdd . I keep throwing an error using this

x=dates.apply(dt.datetime.strftime('%Y%m%d')).astype(int)

TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'str'

这不起作用,因为我尝试传递数组.我知道,如果我只传递元素,它将转换,但是我该如何使用pythonic呢?我确实尝试过使用lambda,但是那也不起作用.

This doesn't not work as i tried to pass an array. I know that if I pass just on element it will convert, but how do I do it more pythonic? I did try using lambda but that didn't work either.

推荐答案

如果您的列是字符串,则需要先使用`pd.to_datetime',

If your column is a string, you will need to first use `pd.to_datetime',

df['Date'] = pd.to_datetime(df['Date'])

然后,将 .dt 日期时间访问器与 strftime 一起使用:

Then, use .dt datetime accessor with strftime:

df = pd.DataFrame({'Date':pd.date_range('2017-01-01', periods = 60, freq='D')})

df.Date.dt.strftime('%Y%m%d').astype(int)

或使用lambda函数:

Or use lambda function:

df.Date.apply(lambda x: x.strftime('%Y%m%d')).astype(int)

输出:

0     20170101
1     20170102
2     20170103
3     20170104
4     20170105
5     20170106
6     20170107
7     20170108
8     20170109
9     20170110
10    20170111
11    20170112
12    20170113
13    20170114
14    20170115
15    20170116
16    20170117
17    20170118
18    20170119
19    20170120
20    20170121
21    20170122
22    20170123
23    20170124
24    20170125
25    20170126
26    20170127
27    20170128
28    20170129
29    20170130
30    20170131
31    20170201
32    20170202
33    20170203
34    20170204
35    20170205
36    20170206
37    20170207
38    20170208
39    20170209
40    20170210
41    20170211
42    20170212
43    20170213
44    20170214
45    20170215
46    20170216
47    20170217
48    20170218
49    20170219
50    20170220
51    20170221
52    20170222
53    20170223
54    20170224
55    20170225
56    20170226
57    20170227
58    20170228
59    20170301
Name: Date, dtype: int32

这篇关于将pandas datetime列yyyy-mm-dd转换为YYYYMMDD的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆