在旋转pandas数据表之后组合在多个列之间划分的数据

时间:2016-09-20 19:59:07

标签: python pandas

我有一个Pandas数据框,其形状如下:

TIME   2015-07-25_10:24:49    2015-07-25_10:24:51   2015-07-25_10:24:46 ...
NAME        
Ed          Kitchen                 None                 Office
Jane         None                Dining Room              None
Robert       None                  Kitchen                None
Louisa       None                   None                 Office
   .
   .
   .

可以使用以下代码段重现此数据框:

import datetime
import pandas as pd

names = ['Ed', 'Jane', 'Robert', 'Louisa', 'Ed']
locations = ['Kitchen', 'Dining Room', 'Kitchen', 'Office', 'Office']
times = [datetime.datetime(2015, 7, 25, 10, 24, 49), 
         datetime.datetime(2015, 7, 25, 10, 24, 51),
         datetime.datetime(2015, 7, 25, 10, 24, 51),
         datetime.datetime(2015, 7, 25, 10, 24, 46),
         datetime.datetime(2015, 7, 25, 10, 24, 46)]

data = {'TIME': times, 
        'NAME': names,
        'LOCATIONS': locations}

df = pd.DataFrame(data=data)

df = df.pivot(index='NAME', columns='TIME', values='LOCATIONS')

从这个数据框中,我想生成一个数据框,其中列折叠为时间范围:

TIME   2015-07-25, 10:23-10:25   2015-07-25, 10:25-10:27   ...
NAME        
Ed            Kitchen                     Office
Jane        Dining Room                    None
Robert        Kitchen                      None
Louisa        Office                       None 
   .
   .
   .

想要崩溃'给定数据尽可能少的列箱以消除尽可能多的NaN。列中的转换是从时间戳到一系列时间戳。所以,相反,艾德已经在厨房待了两分钟,'它是在10:23到10:25两分钟范围内的某个时刻,Ed在厨房里。'理想情况下,最后一个条目将被推入下一个时间戳范围,即使它实际上发生在第一个时间戳范围内。

如果我能以任何方式澄清,请随时告诉我。提前致谢 -

0 个答案:

没有答案