如何在python panda中将字符串格式的日期转换为可设置的子值



我有以下一列名为Date的数据,由以下格式(对象(组成

2020-09-28 21:56:00
2020-09-24 20:20:00
2020-09-24 20:20:00
2020-09-24 20:20:00
2020-09-24 20:20:00
2020-09-24 20:20:00
2020-09-24 20:20:00
2020-09-24 20:20:00
...

我想将其转换为datetime对象,这样我就可以使用.loc按日期进行子集。当数据采用不同的格式时,我查看了已经回答的问题,但我不确定当日期采用上面显示的格式时该如何处理。感谢所有的帮助。谢谢

python日期时间模块将完全满足您的需要。页面下方有一个关于格式化代码的部分。

我相信你需要的是以下形式的东西:

import pandas as pd
from datetime import datetime as dt
# Your data.
data = [
'2020-09-28 21:56:00',
'2020-09-24 20:20:00',
'2020-09-24 20:20:00',
'2020-09-24 20:20:00',
'2020-09-24 20:20:00',
'2020-09-24 20:20:00',
'2020-09-24 20:20:00',
'2020-09-24 20:20:00'
]
# Your data: in a pandas dataframe.
df = pd.DataFrame({'Date':data})
# Iterate over the data.
datetimeObjects = []
for date in df['Date']:
datetimeObjects.append( dt.strptime(date,'%Y-%m-%d %H:%M:%S') )
# Create a new column of datetime objects.
df['DateTimeObjects'] = datetimeObjects

或者(正如@David Erickson在下面指出的那样(你可以简单地:

df['Date'] = pd.to_datetime(df['Date'],format='%Y-%m-%d %H:%M:%S')

根据你想要过滤对象的方式,你可以创建一个开始和结束日期来搜索:

start = dt(2020,9,28)
end = dt(2020,9,30)

然后你可以创建一个面具,并使用locate获取熊猫的信息:

mask = (df['DateTimeObjects'] > start) & (df['DateTimeObjects'] < end)
filteredData = df.loc[mask]

我希望这能帮助你开始。

AFAIK,使用安装后可以使用dateutil

pip install python-dateutil

通过下面的示例,这将很容易直接用于将字符串类型的日期转换为日期时间对象

from dateutil.parser import parse

def getDateTimeFromISO8601String(string):
d = parse(string)
return d
new_yourDtList = [getDateTimeFromISO8601String(x) for x in yourDtList]

最新更新