Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中将字符串转换为日期时间格式?_Python_Datetime_Pandas - Fatal编程技术网

如何在python中将字符串转换为日期时间格式?

如何在python中将字符串转换为日期时间格式?,python,datetime,pandas,Python,Datetime,Pandas,我在一个名为train的数据帧中有一个类型为string(object)的列I_DATE,如下所示 I_DATE 28-03-2012 2:15:00 PM 28-03-2012 2:17:28 PM 28-03-2012 2:50:50 PM 如何将I_日期从字符串转换为datatime格式&指定输入字符串的格式。我看到了一些答案,但它不适用于AM/PM格式 另外,如何根据pandas中的日期范围筛选行?使用时,不需要格式字符串,解析器可以处理它: In [51]: pd.to_dat

我在一个名为train的数据帧中有一个类型为string(object)的列I_DATE,如下所示

I_DATE
28-03-2012  2:15:00 PM
28-03-2012  2:17:28 PM
28-03-2012  2:50:50 PM
如何将I_日期从字符串转换为datatime格式&指定输入字符串的格式。我看到了一些答案,但它不适用于AM/PM格式

另外,如何根据pandas中的日期范围筛选行?

使用时,不需要格式字符串,解析器可以处理它:

In [51]:
pd.to_datetime(df['I_DATE'])

Out[51]:
0   2012-03-28 14:15:00
1   2012-03-28 14:17:28
2   2012-03-28 14:50:50
Name: I_DATE, dtype: datetime64[ns]
要访问日期/日期/时间组件,请使用访问器:

In [54]:
df['I_DATE'].dt.date

Out[54]:
0    2012-03-28
1    2012-03-28
2    2012-03-28
dtype: object

In [56]:    
df['I_DATE'].dt.time

Out[56]:
0    14:15:00
1    14:17:28
2    14:50:50
dtype: object
例如,可以使用字符串进行筛选:

In [59]:
df = pd.DataFrame({'date':pd.date_range(start = dt.datetime(2015,1,1), end = dt.datetime.now())})
df[(df['date'] > '2015-02-04') & (df['date'] < '2015-02-10')]

Out[59]:
         date
35 2015-02-05
36 2015-02-06
37 2015-02-07
38 2015-02-08
39 2015-02-09
[59]中的

df=pd.DataFrame({'date':pd.date_范围(start=dt.datetime(2015,1,1),end=dt.datetime.now()))
df[(df['date']>'2015-02-04')和(df['date']<'2015-02-10')]
出[59]:
日期
35 2015-02-05
36 2015-02-06
37 2015-02-07
38 2015-02-08
39 2015-02-09

方法:1

给定原始
字符串
格式:
2019/03/04 00:08:48

你可以用

updated_df=df['timestamp'].astype('datetime64[ns]')

结果将采用以下
datetime
格式:
2019-03-04 00:08:48

方法:2


updated_df=df.astype({'timestamp':'datetime64[ns]})

如果您有一个字符串格式,其中日期描述为2010年5月15日,则此方法不会始终将其转换为正确的日期时间,因此您需要parse@Yags在原始问题的哪里指定了格式?问题和答案是具体的,它不是涵盖不同格式的通用解决方案