按日期获取行,而不考虑熊猫中日期的格式

时间:2020-09-19 05:07:42

标签: python-3.x pandas

我的数据如下:

Col1,ColDate
a,2020-09-11 08:43:00
b,2020-09-12 09:43:00
c,13-09-2020 09:43:00
d,09/16/2020 10:43:00
e,09/19/2020 12:43:00
f,09/12/2020 15:43:00

目的是获取9月11日至9月13日之间的所有行,而不考虑格式。在大熊猫中

我正在尝试以下操作:

df[df["ColDate"].between('11-09-2020','13-09-2020')]

我得到一个空的数据框。

2 个答案:

答案 0 :(得分:2)

您可以尝试一下

 df[pd.to_datetime(df['ColDate']).dt.strftime('%d-%m-%Y').between('11-09-2020','13-09-2020')]

   Col1              ColDate
0    a  2020-09-11 08:43:00
1    b  2020-09-12 09:43:00
2    c  13-09-2020 09:43:00
5    f  09/12/2020 15:43:00

但由于日期格式混乱,很难说哪个将被视为月和日。

答案 1 :(得分:1)

请检查代码段。您可以先将冷却转换为pd.to_datetime格式,然后再在其上应用遮罩。

df['ColDate'] = pd.to_datetime(df['ColDate'])
mask = (df['ColDate'] > '2020-09-11') & (df['ColDate'] <='2020-09-13')
df = df.loc[mask]
Output
  Col1             ColDate
0    a 2020-09-11 08:43:00
1    b 2020-09-12 09:43:00
5    f 2020-09-12 15:43:00