【问题标题】:extract data in specific interval提取特定区间的数据
【发布时间】:2021-09-21 12:34:34
【问题描述】:

我有一个包含两列的表:日期(01-01-2010 到 31-08-2021),值(毫米) 我想只获取2020年的数据。有什么功能或类似的功能可以获取特定时期的一些数据吗?

例如创建一个枢轴。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python extract sample timetable


【解决方案1】:

试试这个:


df = pd.DataFrame(
    {'date':['27-02-2010','31-1-2020','31-1-2021','02-1-2020','13-2-2020',
             '07-2-2019','30-4-2018','04-8-2020','06-4-2013','21-6-2020'],
     'value':['foo','bar','lorem','ipsum','alpha','omega','big','small','salt','pepper']})

df[pd.to_datetime(df['date']).dt.year == 2020]

输出:

    date    value
1   31-1-2020   bar
3   02-1-2020   ipsum
4   13-2-2020   alpha
7   04-8-2020   small
9   21-6-2020   pepper

或者对于任何范围的搜索,你可以使用这个:

df['date'] = pd.to_datetime(df['date'])
df[(df['date']>pd.Timestamp(2020,1,1)) & (df['date']<pd.Timestamp(2020,12,31))]

【讨论】:

    【解决方案2】:

    这是一个关于如何使用字符串切片从基于年份的数据集中返回值的示例!如果这与您的情况无关,我需要您使用特定的代码示例来编辑您的帖子!

    import pandas as pd
    
    df = pd.DataFrame(
        {'date':['27-02-2010','31-1-2020','31-1-2021','02-1-2020','13-2-2020','07-2-2019','30-4-2018','04-8-2020','06-4-2013','21-6-2020'],'value':['foo','bar','lorem','ipsum','alpha','omega','big','small','salt','pepper']})
    for row in df.iterrows():
        if row[1]['date'][-4::1] == '2020':
            print (row[1]['value'])
    

    这将只返回来自日期为 2020 年的数据框中的值

    【讨论】:

      【解决方案3】:

      Pandas 有大量的time series features 供您使用,但对于更简单的方法,您可以将date 列定义为索引,然后对数据进行切片(假设表已按日期排序):

      import pandas as pd
      
      df = pd.DataFrame({'date': ['31-12-2019', '01-01-2020', '01-07-2020', 
                                  '31-12-2020', '01-01-2021'],
                         'value': [1, 2, 3, 4, 5]})
      df.index = df.date
      
      df.loc['01-01-2020':'31-12-2020']
      
                  date        value
      date        
      01-01-2020  01-01-2020  2
      01-07-2020  01-07-2020  3
      31-12-2020  31-12-2020  4
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-26
        • 1970-01-01
        • 2018-08-29
        • 1970-01-01
        • 2012-04-14
        • 2017-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多