Естественные/Относительные дни в Python

in серии проверяет, находится ли значение в индексе:

In [11]: s = pd.Series(list('abc')) In [12]: s Out[12]: 0 a 1 b 2 c dtype: object In [13]: 1 in s Out[13]: True In [14]: 'a' in s Out[14]: False

. Один из вариантов - увидеть, есть ли он в уникальных значениях:

In [21]: s.unique() Out[21]: array(['a', 'b', 'c'], dtype=object) In [22]: 'a' in s.unique() Out[22]: True

или набор python:

In [23]: set(s) Out[23]: {'a', 'b', 'c'} In [24]: 'a' in set(s) Out[24]: True

Как указано в @DSM, он может быть более эффективным (особенно если вы просто делаете это для одного значения) просто использовать непосредственно по значениям:

In [31]: s.values Out[31]: array(['a', 'b', 'c'], dtype=object) In [32]: 'a' in s.values Out[32]: True
35
задан sevenforce 6 May 2015 в 09:55
поделиться

3 ответа

В то время как не полезный для Вас в тот самый момент, это может быть так для будущих искателей: модуль столпотворения, который имеет дело со всеми видами материала локали, имеет функцию для того, чтобы сделать более или менее, что Вы хотите. В настоящее время это находится только в их соединительной линии хотя, не в последнем общедоступном выпуске (версия 0.9.4). Как только функциональность приземляется в выпуске, Вы могли сделать что-то как:

from datetime import timedelta
from babel.dates import format_timedelta
delta = timedelta(days=6)
format_timedelta(delta, locale='en_US')
u'1 week'

Это взято прямо от документация столпотворения относительно дельты времени, форматирующей . Это, по крайней мере, получит Вас части пути. Это, из которого привычка недооценивает нечеткость к уровню несколько "моменты назад" и такой, но это сделает "n минуты" и т.д. правильно pluralized.

Если это имеет значение, модуль столпотворения также содержит функции для форматирования дат и времени согласно локали, Которая могла бы быть полезной, когда дельта времени является большой.

17
ответ дан runeh 27 November 2019 в 06:51
поделиться

Или Вы могли легко адаптироваться timesince.py от Django, который только имеет 2 других зависимости к себе: один для перевода (в котором Вы, возможно, не нуждались бы) и один для часовых поясов (который может быть легко адаптирован).

Между прочим, у Django есть лицензия BSD, которая довольно гибка, Вы будете в состоянии использовать ее в любом проекте, который Вы в настоящее время используете.

7
ответ дан lpfavreau 27 November 2019 в 06:51
поделиться

Вы ищете что-то вроде этого (Печать Относительных Дат в Python)?

5
ответ дан Aaron Maenpaa 27 November 2019 в 06:51
поделиться
Другие вопросы по тегам:

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