Python:将字符串转换为日期时间,计算时差,选择时差超过3天的行
Posted
技术标签:
【中文标题】Python:将字符串转换为日期时间,计算时差,选择时差超过3天的行【英文标题】:Python: Convert string to datetime, calculate time difference, and select rows with time difference more than 3 days 【发布时间】:2021-03-03 11:47:50 【问题描述】:我有一个包含两个字符串日期列的数据框。首先,我想将这两列转换为日期时间并计算时间差。然后我想选择时差超过3天的行。
简单的df
ID Start End
234 2020-11-16 20:25 2020-11-18 00:10
62 2020-11-02 02:50 2020-11-15 21:56
771 2020-11-17 03:03 2020-11-18 00:10
想要的df
ID Start End Time difference
62 2020-11-02 02:50:00 2020-11-15 21:56:00 13 days 19:06:00
当前输入
df['End'] = pd.to_datetime(z['End'])
df['Start'] = pd.to_datetime(z['Start'])
df['Time difference'] = df['End'] - df['Start']
如何选择时差超过 3 天的行?
提前致谢!感谢您对此的任何帮助!
【问题讨论】:
【参考方案1】:df=df.set_index('ID').apply(lambda x: pd.to_datetime(x))#Set ID as index to allow coercing of dates to datetime
df=df.assign(Timedifference =df['End'].sub(df['Start'])).reset_index()#Calculate time difference and reset index
df[df['Timedifference'].dt.days.gt(3)]#Mask a bollean selection to filter youre desired
【讨论】:
【参考方案2】:你只是少了一行,转换成天再查询
df[df['Time difference'].dt.days > 3]
ID Start End Time difference
62 2020-11-02 02:50:00 2020-11-15 21:56:00 13 days 19:06:00
【讨论】:
以上是关于Python:将字符串转换为日期时间,计算时差,选择时差超过3天的行的主要内容,如果未能解决你的问题,请参考以下文章