【问题标题】:How can i break Pandas Dataframe on bases of time interval如何根据时间间隔破坏 Pandas Dataframe
【发布时间】:2018-04-22 23:49:06
【问题描述】:

我想在某个时间间隔内打破 Pandas 数据框,就像我有一整天的数据一样,我想把它分成每 5 小时一次,我的日期时间字段为 2016-10-02 12:00:002016-10-02 24:00:00

我该怎么做?

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    通过使用Grouper,这里的新变量组将数据框拆分为5个

    df=pd.DataFrame({'Time':mydates}).reset_index()
    
    df['group']=df.groupby(pd.Grouper(key='Time',freq='5h'))['index'].transform('first')
    

    更多信息

    df.groupby(pd.Grouper(key='Time',freq='5h'))['index'].transform('first').nunique()
    Out[186]: 5
    

    数据输入:

    start_date = "2017-10-28"
    stop_date = "2017-10-29"
    mydates = pd.date_range(start_date, stop_date,freq='Min')
    
    df=pd.DataFrame({'Time':mydates}).reset_index()
    

    【讨论】:

    • 我需要类似stackoverflow.com/questions/39609391/… 你给我的解决方案的结果,它只是将日期划分为 5 小时间隔,但我需要这五个小时内的全部数据。
    • @Ravi 我给你新的列组,你可以根据这个列拆分数据框
    • 谢谢,上次对我有用,但是如果有另一个值,但是没有像小时或分钟这样的单位,那么这个石斑将不起作用,我会在其他案例?
    • 数据是多列,我有一列值2,3,5,10, 19,33,34,34,44,56,755,12,10,12,23,45,12, 11,4,5,10,假设这是列并且有固定值 dis = 10,如果列中的任何值低于此值,它将把数据帧分成多个帧,对于上面的列 df[1]= 2,3,5,10 df2 = 19,33,34,34,44,56,755,12 剩下的都是一样的
    • @Ravi 抱歉,我还是不明白...如果您可以更改您的问题,或者您可以发布一个新问题。在 cmets 中很难回答...跨度>
    猜你喜欢
    • 2021-06-20
    • 2019-01-13
    • 2016-01-21
    • 2014-02-17
    • 2014-02-26
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多