【问题标题】:Python pandas to filter the data based on date range in ascending orderPython pandas根据日期范围按升序过滤数据
【发布时间】:2021-10-16 16:18:28
【问题描述】:

我正在加载 csv 文件,它包含三列:包含日期和时间的列、包含值的列和另一个“数据”。示例行:

 value data                 Date-Time
0      2    a     2019-3-18 23:11:00
1      3    b     2019-10-24 21:00:12
2      1    c     2019-1-10 23:00:00
3      2    d     2019-4-18 23:11:00
4      1    e     2019-1-1 23:00:00

如果我们得到重复的值,我希望按值分组,需要根据最近的日期和时间记录来获取记录,它应该如下所示。

  value data                date
0      1    c 2019-1-10 23:00:00
1      2    d 2019-04-18 23:11:00
2      3    b 2019-10-24 21:00:12


df["date"] = pd.to_datetime(df["date"])

df = df.sort_values("date").groupby(['value'], as_index=False).first()

print(df)

【问题讨论】:

    标签: python pandas dataframe group-by pandas-groupby


    【解决方案1】:

    使用sort_valuesdrop_duplicates

    # Convert 'Date-Time' column to datetime64
    # df['Date-Time'] = pd.to_datetime(df['Date-Time'])
    
    >>> df.sort_values('Date-Time') \
          .drop_duplicates('value', keep='last') \
          .sort_values('value')
    
       value data           Date-Time
    2      1    c 2019-01-10 23:00:00
    3      2    d 2019-04-18 23:11:00
    1      3    b 2019-10-24 21:00:12
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 2016-11-25
      • 2020-02-15
      • 1970-01-01
      • 2018-09-29
      • 2015-10-02
      相关资源
      最近更新 更多