Python 3.x 按日期获取行,而不考虑表中日期的格式
我有以下资料:Python 3.x 按日期获取行,而不考虑表中日期的格式,python-3.x,pandas,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-
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')]
我得到一个空数据框。请检查代码段。您可以先将Coldate转换为
pd.to\u datetime
格式,然后像这样在其上应用掩码
df['ColDate'] = pd.to_datetime(df['ColDate'])
mask = (df['ColDate'] > '2020-09-11') & (df['ColDate'] <='2020-09-13')
df = df.loc[mask]
请检查代码片段。您可以先将Coldate转换为
pd.to\u datetime
格式,然后像这样在其上应用掩码
df['ColDate'] = pd.to_datetime(df['ColDate'])
mask = (df['ColDate'] > '2020-09-11') & (df['ColDate'] <='2020-09-13')
df = df.loc[mask]
你可以试试这个
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
但是很难说哪一个将被视为月份和日期,因为日期格式混乱。你可以试试这个
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
但是很难说哪一个将被视为月份和日期,因为日期格式混乱。谢谢你的回答,但是我如何使用
dd-mm-yyyy格式
?还有一行命令会更有用谢谢你的回答但是我如何使用dd-mm-yyyy格式
?而且一行命令会更有用谢谢。这很有效。如果我只有一个日期,我应该使用什么来代替之间的?一个日期是上限还是下限?对不起。我的意思是它应该属于某个特定的day@Karthik,则在
之间使用是不可能的。我们必须使用您的解决方案中的逻辑运算符。@cs95新年快乐!我真的很喜欢这个答案:)谢谢。这很有效。如果我只有一个日期,我应该使用什么来代替
之间的?一个日期是上限还是下限?对不起。我的意思是它应该属于某个特定的day@Karthik,则在
之间使用是不可能的。我们必须使用您的解决方案中的逻辑运算符。@cs95新年快乐!我真的很喜欢这个答案:)