pandas 将Dataframe中的日期时间列与条件进行比较

798qvoo8  于 2023-02-11  发布在  其他
关注(0)|答案(1)|浏览(201)

在具有两个日期时间列的 Dataframe 中,是否可以仅返回ATime不超过BTime之前1分钟的行?注意,它还应返回ATime大于BTime的行。
原件:
| 阿蒂梅|B时间|
| - ------|- ------|
| 2017年6月1日19:58:01|2017年6月1日20:00:00|
| 2017年6月1日19:59:01|2017年6月1日20:00:00|
| 2017年6月1日20:00:01|2017年6月1日20:00:00|
结果:
| 阿蒂梅|B时间|
| - ------|- ------|
| 2017年6月1日19:59:01|2017年6月1日20:00:00|
| 2017年6月1日20:00:01|2017年6月1日20:00:00|

xxhby3vn

xxhby3vn1#

通过to_datetime将列转换为日期时间,并比较不像1 Minute的列IG的差异,最后通过boolean indexing过滤:

df['Atime'] = pd.to_datetime(df['Atime'], dayfirst=True)
df['BTime'] = pd.to_datetime(df['BTime'], dayfirst=True)

df1 = df[df['BTime'].sub(df['Atime']).lt(pd.Timedelta('1 Min'))]
print (df1)
                Atime               BTime
1 2017-01-06 19:59:01 2017-01-06 20:00:00
2 2017-01-06 20:00:01 2017-01-06 20:00:00

相关问题