繁体   English   中英

Python Dataframe:获取指定日期范围/期间之间的行?

[英]Python Dataframe: Get rows between a specified date range/Period?

我有一个包含两列nametimedf 我想找到输入之间的行 - input1input2

input1 = pd.Period('4/21/2020') 
input2 = pd.Period('5/20/2020')

df

    raw_data = {
        'name': ['a', 'b', 'c', 'd','e','f','g','h','i'], 
        'time': ['2020-03-12','2020-03-16','2020-04-29','2020-03-16',
                 '2020-03-16','2020-04-16','2020-03-09','2020-05-19','2020-04-23']
   } 

    df = pd.DataFrame(raw_data, columns = ['name', 'time'])


           name        time
    0       a         2020-03-12
    1       b         2020-03-16
    2       c         2020-04-29
    3       d         2020-03-16
    4       e         2020-03-16
    5       f         2020-04-16
    6       g         2020-03-09
    7       h         2020-05-19
    8       i         2020-04-23

我预期的 output:

df

           name        time
    2       c         2020-04-29
    7       h         2020-05-19
    8       i         2020-04-23

我试过的:

    df['time'] = pd.to_datetime(df['time'])
    df = df[df['time'].dt.to_period('d').isin([input1, input2])]

您的输入值是需要转换为时间戳的期间,

df.loc[(df['time'] > input1.to_timestamp()) & (df['time'] < input2.to_timestamp())]



   name time
2   c   2020-04-29
7   h   2020-05-19
8   i   2020-04-23

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM