按时间输入日期输入和分组pandas datfarme

时间:2017-02-12 00:45:23

标签: python-3.x pandas datetime

我有一个带有日期和时间值的pandas数据框如下。

    Date        Time      Pattern       
0   06/01/13    0:00:01     A
1   06/02/13    1:00:01     B
2   06/03/13    2:00:01     A
3   06/04/13    3:00:01     C

现在我打算从用户那里获取日期输入,如下所示:

date = str(input('Input date in mm-dd-yy format'))

现在我应该如何按用户的所有行查找/分组输入日期并将其复制到新的数据帧。我尝试了很多东西,但对数据时间转换感到困惑。

我该怎么办呢?

2 个答案:

答案 0 :(得分:1)

首先确保您的Date列为datetime

df.Date = pd.to_datetime(df.Date)

然后使用query

date = pd.to_datetime(input('Input date in mm-dd-yyyy format'))
df.query('Date == @date')

enter image description here

对@learningprogramming的反应
您可以在query

中添加其他条件
date = pd.to_datetime(input('Input date in mm-dd-yyyy format: '))
df.query('Date == @date & Pattern == "B"')

enter image description here

loc也适用

date = pd.to_datetime(input('Input date in mm-dd-yyyy format: '))
df.loc[(df.Date == date) & (df.Pattern == 'B')]

enter image description here

将所有内容放入输入

date = pd.to_datetime(input('Input date in mm-dd-yyyy format: '))
pattern = str(input('Input pattern type: '))
df.query('Date == @date & Pattern == @pattern')

enter image description here

答案 1 :(得分:0)

名为'Date'的列是字符串吗?如果是这样,您可以尝试类似:

subset = df[df['Date'] == date]