【问题标题】:How can I split rows by day?如何按天拆分行?
【发布时间】:2023-03-12 11:30:01
【问题描述】:

我有很多行表明它们的创建时间

 'Fri Sep 19 17:27:16 blah blah' 

 'Fri Sep 19 17:14:28 blah blah'

 'Fri Sep 19 17:11:51 blah blah' 

          .
          .
          .

一个月有几千行,每天有几十行

我想将它们按天分组。我应该使用哪个功能?

【问题讨论】:

  • 这篇文章需要更多的背景信息,这样人们才能回答你的问题。目前尚不清楚这与熊猫有何关系-您的数据是否在 DataFrame 中?

标签: pandas


【解决方案1】:
itertools.groupby(rowlist, key=lambda row: row[0:10])

【讨论】:

    【解决方案2】:

    您的问题不清楚,但假设您有一列将时间值作为字符串,另一列作为任意值,加载后您需要将“日期”转换为日期时间 dtype,然后您可以按日期分组:

    In [109]:
    # load some data
    import io
    import pandas as pd
    t="""Fri Sep 19 17:27:16,blah blah
    Fri Sep 20 17:14:28,blah blah
    Fri Sep 19 17:11:51,blah blah"""
    df = pd.read_csv(io.StringIO(t), header=None, names=['date', 'value'])
    df
    
    Out[109]:
                      date      value
    0  Fri Sep 19 17:27:16  blah blah
    1  Fri Sep 20 17:14:28  blah blah
    2  Fri Sep 19 17:11:51  blah blah
    
    In [110]:    
    # convert the datetime string
    df['date'] = pd.to_datetime(df['date'])
    df.info()
    <class 'pandas.core.frame.DataFrame'>
    Int64Index: 3 entries, 0 to 2
    Data columns (total 2 columns):
    date     3 non-null datetime64[ns]
    value    3 non-null object
    dtypes: datetime64[ns](1), object(1)
    memory usage: 72.0+ bytes
    
    In [113]:    
    # group on the date
    df.groupby(df['date'].dt.date)['value'].max()
    
    Out[113]:
    2015-09-19    blah blah
    2015-09-20    blah blah
    Name: value, dtype: object
    

    所以上面使用to_datetime来转换日期时间str,然后我在'date'列的date属性上使用groupby,这里我调用max只是为了表明它区分不同的日期.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-30
      • 2015-08-08
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      相关资源
      最近更新 更多