2016-07-04 5 views
1

Я пытаюсь найти разницу между двумя датами в кадре данных с несколькими индексами, что является результатом операции сводной таблицы.Самый простой способ найти разницу между двумя датами в pandas

Кадр данных содержит три столбца. Первый - это measurement, второй - end date, а третий - start date.

Я был в состоянии успешно добавить третий столбец нескольких индексов в кадре данных, но только, чтобы сделать результат рич ячейки нулевой

Pt [ «мин»] [ «start_date»] = 0, но при Я пытаюсь вычесть две даты, я получаю строчную ошибку, и добавление .Dt.Days в конец каждого столбца также приводит к ошибке.

Каков самый простой способ найти разницу в днях между двумя датами в мультииндикальном кадре данных pandas?

ответ

0

Вы можете выбрать Multiindex в столбцах по tuples и вычитать столбцы:

print (df) 
    a       
    meas   end  start 
0 7 2015-04-05 2015-04-01 
1 8 2015-04-07 2015-04-02 
2 9 2015-04-14 2015-04-04 

#if dtypes not datetime 
df[('a','end')] = pd.to_datetime(df[('a','end')]) 
df[('a','start')] = pd.to_datetime(df[('a','start')]) 

df[('a','diff')] = df[('a','end')] - df[('a','start')] 

print (df) 
    a        
    meas  end  start diff 
0 7 2015-04-05 2015-04-01 4 days 
1 8 2015-04-07 2015-04-02 5 days 
2 9 2015-04-14 2015-04-04 10 days 

Если выход потребность в days:

df[('a','diff')] = (df[('a','end')] - df[('a','start')]).dt.days 
print (df) 
    a       
    meas  end  start diff 
0 7 2015-04-05 2015-04-01 4 
1 8 2015-04-07 2015-04-02 5 
2 9 2015-04-14 2015-04-04 10 
Смежные вопросы