Панды находят продолжительность между датами, где выполняется условие?

Короче говоря:

В последней итерации

for(int i = 0; i<=name.length; i++) {

i будет равно name.length, что является незаконным индексом, так как индексы массива равны нулю, основанный.

Ваш код должен читать

for(int i = 0; i < name.length; i++) 
                 ^
2
задан doddy 13 July 2018 в 14:31
поделиться

1 ответ

Я получаю немного другой вывод:

df['DATE'] = pd.to_datetime(df['DATE'])
df['GAP'] = df.groupby('VENDOR ID')['DATE'].diff().dt.days
print (df)
   VENDOR ID       DATE   GAP
1         33 2018-01-12   NaN
2         33 2018-03-12  59.0
3         12 2018-01-08   NaN
4         12 2018-01-15   7.0
5         12 2018-01-23   8.0
6         33 2018-05-12  61.0
7         89 2018-01-12   NaN

Объяснение:

  1. Преобразование столбца to_datetime
  2. Затем groupby с diff
  3. Последнее преобразование timedeltas s в days
2
ответ дан jezrael 17 August 2018 в 12:36
поделиться
  • 1
    pandas 0.23.1 – jezrael 13 July 2018 в 14:38
  • 2
    @ALollz - Спасибо. – jezrael 13 July 2018 в 14:40
  • 3
    Требуется ли сортировка строк по дате? Я знаю, что пример в моем вопросе уже отсортирован, но вы можете добавить это к ответу. Отличный ответ, супер быстрый и полезный. – doddy 13 July 2018 в 15:06
  • 4
    @doddy точно, нужно сортировать даты. – jezrael 13 July 2018 в 15:33
Другие вопросы по тегам:

Похожие вопросы: