[英]Convert string to date format in python pandas dataframe
我在pandas数据框中有一个数据集以下日期格式:
warnings = pd.read_csv('output.csv', sep=',')
warnung['from']
7 Di, 15. Aug, 21:52 Uhr
8 Di, 15. Aug, 22:46 Uhr
9 Di, 15. Aug, 22:46 Uhr
10 Di, 15. Aug, 21:52 Uhr
11 Di, 15. Aug, 22:46 Uhr
12 Di, 15. Aug, 21:52 Uhr
13 Di, 15. Aug, 22:46 Uhr
14 Di, 15. Aug, 21:52 Uhr
15 Di, 15. Aug, 22:46 Uhr
在这里我的问题,如何将其转换为熊猫的清晰日期格式。 我想比较今天的实际日期,并从我的数据集中与此日期相匹配。
我想要,例如
15.08.2017, 22:46:00
或者以更方便的格式。 然后我想将实际日期与数据集中的日期进行比较。
我怎么能在pandas DataFrame中做到这一点。
谢谢你的帮助。
我认为你需要to_datetime
,但首先通过使用str和radd
索引 2017
年来删除前4个和后4个字符:
df['new'] = pd.to_datetime(df['from'].str[4:-4].radd('2017-'), format='%Y-%d. %b, %H:%M')
print (df)
from new
0 Di, 15. Aug, 21:52 Uhr 2017-08-15 21:52:00
1 Di, 15. Aug, 22:46 Uhr 2017-08-15 22:46:00
2 Di, 15. Aug, 22:46 Uhr 2017-08-15 22:46:00
3 Di, 15. Aug, 21:52 Uhr 2017-08-15 21:52:00
4 Di, 15. Aug, 22:46 Uhr 2017-08-15 22:46:00
5 Di, 15. Aug, 21:52 Uhr 2017-08-15 21:52:00
6 Di, 15. Aug, 22:46 Uhr 2017-08-15 22:46:00
7 Di, 15. Aug, 21:52 Uhr 2017-08-15 21:52:00
8 Di, 15. Aug, 22:46 Uhr 2017-08-15 22:46:00
最后与今天日期比较使用boolean indexing
与date
转换pandas日期时间到python日期:
today_date = pd.datetime.today().date()
df1 = df[df['new'].dt.date == today_date]
这是我的尝试,我认为它应该有效,虽然我不确定你要用来检查它是否是当前日期的过程。
第一部分将稍微整理一下并获取每一行的字符串并将其转换为日期时间对象。
执行检查的第二部分将吐出一列,根据每行的系统时钟给出True / False。 这是用python 3.5.2完成的。
import string
import pandas as pd
import datetime
#Converts each string into a datetime object
def convert_date(row):
trim_date = row[4:-4]
remove_punc = trim_date.translate(trim_date.maketrans('','',string.punctuation))
return datetime.datetime.strptime('2017 ' + remove_punc, '%Y %d %b %H%M')
df['datetime_convert'] = df['from'].apply(convert_date)
#Creates column to check if every value matches the current time on your system
def check_is_now(row):
if str(row) == datetime.datetime.today().strftime('%Y-%m-%d %H:%M:00')::
return True
else:
return False
df['is_now'] = df['datetime_convert'].apply(check_is_now)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.