У меня есть столбец даты и времени, и я хочу получить разницу между значениями в годах, месяцах и т. д., а не в дельтах времени, которые предоставляют только дни. Как мне это сделать в Pandas?
Pandas предоставляет DateOffset для относительных дельт, но в документации говорится, что «форма позиционного аргумента относительной дельты не поддерживается», и это форма, которая вычисляет относительную дельту (в отличие от указания относительной дельты).
В этом примере я имею дело только с минимальным и максимальным значением столбца, чтобы получить диапазон, но в конечном итоге я хочу применить это ко всему столбцу.
min_max = df_most_watched['time'].agg(['min', 'max'])
min 2019-06-18 18:22:05.991000+00:00
max 2021-02-15 18:03:02.893000+00:00
Name: time, dtype: datetime64[ns, UTC]
min_max.diff():
min NaT
max 607 days 23:40:56.902000
Name: time, dtype: timedelta64[ns]
Выходные данные должны быть 1 год, 7 месяцев, 27 дней, 23:40:56.902000.
Попытка
Для подтверждения я попробовал pd.DateOffset(low, high) и получил TypeError: аргумент `n` должен быть целым числом, получил
Я попробовал .pct_change() по прихоти, надеясь, что у него будет особый случай для даты и времени, но без игральных костей. TypeError: невозможно выполнить __truediv__ с этим типом индекса: DatetimeArray
Я проверил, есть ли в .diff() какой-то параметр, напримерrelative=True, но нет.
Исследование
В Руководстве пользователя страница временных рядов не имеет ничего релевантного, когда я нажимаю Ctrl+F для «относительного», а страница «Дельты времени» - нет. вообще упоминайте «относительный».
Я проверил, может ли DateOffset иметь какие-либо альтернативные конструкторы, которые могли бы принимать две метки времени, но в документации не упоминаются какие-либо методы, начинающиеся с from или что-либо еще.
Настройка
min_max = pd.Series(
{'min': pd.Timestamp('2019-06-18 18:22:05.991', tz='UTC'),
'max': pd.Timestamp('2021-02-15 18:03:02.893', tz='UTC')},
name='time')
Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-pandas
Как рассчитать относительную разницу во времени в Pandas? ⇐ Python
Программы на Python
-
Anonymous
1762278932
Anonymous
У меня есть столбец даты и времени, и я хочу получить разницу между значениями в годах, месяцах и т. д., а не в дельтах времени, которые предоставляют только дни. Как мне это сделать в Pandas?
Pandas предоставляет DateOffset для относительных дельт, но в документации говорится, что «форма позиционного аргумента относительной дельты не поддерживается», и это форма, которая вычисляет относительную дельту (в отличие от указания относительной дельты).
В этом примере я имею дело только с минимальным и максимальным значением столбца, чтобы получить диапазон, но в конечном итоге я хочу применить это ко всему столбцу.
min_max = df_most_watched['time'].agg(['min', 'max'])
min 2019-06-18 18:22:05.991000+00:00
max 2021-02-15 18:03:02.893000+00:00
Name: time, dtype: datetime64[ns, UTC]
min_max.diff():
min NaT
max 607 days 23:40:56.902000
Name: time, dtype: timedelta64[ns]
Выходные данные должны быть 1 год, 7 месяцев, 27 дней, 23:40:56.902000.
Попытка
Для подтверждения я попробовал pd.DateOffset(low, high) и получил TypeError: аргумент `n` должен быть целым числом, получил
Я попробовал .pct_change() по прихоти, надеясь, что у него будет особый случай для даты и времени, но без игральных костей. TypeError: невозможно выполнить __truediv__ с этим типом индекса: DatetimeArray
Я проверил, есть ли в .diff() какой-то параметр, напримерrelative=True, но нет.
Исследование
В Руководстве пользователя страница временных рядов не имеет ничего релевантного, когда я нажимаю Ctrl+F для «относительного», а страница «Дельты времени» - нет. вообще упоминайте «относительный».
Я проверил, может ли DateOffset иметь какие-либо альтернативные конструкторы, которые могли бы принимать две метки времени, но в документации не упоминаются какие-либо методы, начинающиеся с from или что-либо еще.
Настройка
min_max = pd.Series(
{'min': pd.Timestamp('2019-06-18 18:22:05.991', tz='UTC'),
'max': pd.Timestamp('2021-02-15 18:03:02.893', tz='UTC')},
name='time')
Подробнее здесь: [url]https://stackoverflow.com/questions/79788108/how-do-i-calculate-a-relative-time-delta-in-pandas[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия