【问题标题】:Split 24 hour data in pandas在熊猫中拆分 24 小时数据
【发布时间】:2022-01-14 13:20:09
【问题描述】:

我的数据框基本上是这样的:

19:05:09    86
19:10:09    86
19:15:09    85
19:20:09    84
..
18:55:10    165
19:00:10    164
19:05:10    163

所以,这是 24 小时数据。我将列更改为日期时间来处理数据,但它都是同一天,我需要排序数据。我的意思是00之后一定是另一天。有什么想法吗?

我当然可以这样拆分数据:

data2[(data.times >= data['times'][0])] # first day
data2[(data2.times < data2['times'][0])] # and second day

在第二天再增加一天。

但是,数据包括几天和相同格式的所有时间列。我必须根据 datetime 列的第一个值每天拆分数据 24 小时版本(显然只有数据小时没有一天)。最好的方法是什么?

【问题讨论】:

    标签: python pandas datetime


    【解决方案1】:

    这是一种方法

    import io
    data= '''times
    19:05:09
    19:10:09
    23:55:09
    00:00:09
    19:05:09
    19:10:09
    23:55:09
    00:00:09
    19:05:09
    19:10:09
    23:55:09
    00:00:09
    '''
    df = pd.read_csv(io.StringIO(data), sep=' \s+', engine='python')
    df['count'] = df.loc[df['times'].str[0:5]=='00:00'].groupby(df['times'].str[0:5]=='00:00').cumcount() + 1
    
    # Then back or forward fill as needed
    df['count'] = df['count'].bfill()
    df['count'].ffill().fillna(0)
    
               times  count
        0   19:05:09  1.000
        1   19:10:09  1.000
        2   23:55:09  1.000
        3   00:00:09  1.000
        4   19:05:09  2.000
        5   19:10:09  2.000
        6   23:55:09  2.000
        7   00:00:09  2.000
        8   19:05:09  3.000
        9   19:10:09  3.000
        10  23:55:09  3.000
        11  00:00:09  3.000
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-19
    • 2013-06-23
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    相关资源
    最近更新 更多