Как создать диапазон времени в Python? [Дубликат]

1

Я хочу перебрать значение часа, чтобы составить график количества поездок за каждый час.

Я не нашел решения в Интернете, как решить эту проблему. Можно ли мне сказать, как это сделать?

  • 0
    Как вы хотите повторить в течение часа? Секунды, минуты, шестые?
  • 1
    pd.date_range(start='2000-01-01', end='2000-01-31', freq='H') . Либо так, либо вы используете несколько периодов и дату начала.
Показать ещё 2 комментария
Теги:
pandas
python-3.x

2 ответа

2

Вы можете найти лучшую документацию по адресу https://pandas.pydata.org/pandas-docs/stable/generated/pandas.date_range.html.

Пожалуйста, посмотрите на приведенный ниже пример.

>>> import pandas as pd
>>>
>>> times = pd.date_range("2018-01-01", freq = "s", periods = 5)
>>>
>>> d = {
...     'fullname': ["A X", "G Y", "K P", "T B", "R O"], "entry_time": times
... }
>>>
>>> df = pd.DataFrame(d)
>>> df
  fullname          entry_time
0      A X 2018-01-01 00:00:00
1      G Y 2018-01-01 00:00:01
2      K P 2018-01-01 00:00:02
3      T B 2018-01-01 00:00:03
4      R O 2018-01-01 00:00:04
>>>
>>> df["entry_time"]
0   2018-01-01 00:00:00
1   2018-01-01 00:00:01
2   2018-01-01 00:00:02
3   2018-01-01 00:00:03
4   2018-01-01 00:00:04
Name: entry_time, dtype: datetime64[ns]
>>>
>>> df["entry_time"][0]
Timestamp('2018-01-01 00:00:00')
>>>
>>> str(df["entry_time"][1].time())
'00:00:01'
>>>
>>> df["entry_time"][1].time()
datetime.time(0, 0, 1)
>>>
>>> df["entry_time"][1].year
2018
>>>
>>> for t in times:
...     print(t)
...
2018-01-01 00:00:00
2018-01-01 00:00:01
2018-01-01 00:00:02
2018-01-01 00:00:03
2018-01-01 00:00:04
>>>

Вот способ перечислить все методы/атрибуты, определенные в объектах Timestamp.

>>> dir(df["entry_time"][0])
['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribut
e__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__pyx
_vtable__', '__radd__', '__reduce__', '__reduce_ex__', '__repr__', '__rsub__', '__setattr__', '__setstate__', '__sizeof__'
, '__str__', '__sub__', '__subclasshook__', '__weakref__', '_date_attributes', '_date_repr', '_get_date_name_field', '_get
_start_end_field', '_has_time_component', '_repr_base', '_round', '_short_repr', '_time_repr', 'asm8', 'astimezone', 'ceil
', 'combine', 'ctime', 'date', 'day', 'day_name', 'dayofweek', 'dayofyear', 'days_in_month', 'daysinmonth', 'dst', 'floor'
, 'fold', 'freq', 'freqstr', 'fromordinal', 'fromtimestamp', 'hour', 'is_leap_year', 'is_month_end', 'is_month_start', 'is
_quarter_end', 'is_quarter_start', 'is_year_end', 'is_year_start', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'micro
second', 'min', 'minute', 'month', 'month_name', 'nanosecond', 'normalize', 'now', 'quarter', 'replace', 'resolution', 'ro
und', 'second', 'strftime', 'strptime', 'time', 'timestamp', 'timetuple', 'timetz', 'to_datetime64', 'to_julian_date', 'to
_period', 'to_pydatetime', 'today', 'toordinal', 'tz', 'tz_convert', 'tz_localize', 'tzinfo', 'tzname', 'utcfromtimestamp'
, 'utcnow', 'utcoffset', 'utctimetuple', 'value', 'week', 'weekday', 'weekday_name', 'weekofyear', 'year']
>>>
  • 0
    90% этого ответа - просто догадки - у вопроса недостаточно деталей для работы. Вы не представляете, как выглядит df и вы не выполняете iterate over the value of an hour to plot the number of trips in each hour - это больше похоже на «Мне нужно сгруппировать свои данные и сгруппировать по часу день". Ответы на непонятные вопросы не помогают строить вопросы и ответы.
  • 0
    Да, сэр, вы правы. Отвечая, я подумал, что для умных людей достаточно только указания / небольшого намека. Как вы можете видеть основной заголовок - How to create a range of time in Python? и я принял это как последнюю проблему, чтобы ответить так, чтобы спрашивающий мог получить подсказку. Спасибо.
0

Интервал одного часа генерируется за 7 дней

dates = pd.date_range(start='2018-08-08', end = '2018-08-15', freq='H')

Создание кадра данных и хранение данных по одному

df_new = pd.DataFrame(columns=['dates', 'generater_reading'])
df_new.dates = dates

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню