Короче говоря:
до p_h = list(peak_hour_df.index.astype(str).str.zfill(4))
. Это вернет список, а затем вы можете его проиндексировать.
Более подробно:
Когда вы делаете peak_hour_df.index.astype(str)
, как вы видите, dtype
уже object
(строка), так что работа выполнена. Обратите внимание, что это тип содержимого; не самого объекта. Также я удаляю .str.zfill(4)
, поскольку это является дополнительным и не меняет природу проблемы или тип перенастройки.
Тогда тип целого объекта, который вы возвращаете это pandas.core.indexes.base.Index
. Вы можете проверить это так: type(peak_hour_df.index.astype(str))
. Если вы хотите вернуть одно значение из него в типе str
(например, первое значение), то вы можете либо напрямую индексировать объект pandas, например, так:
peak_hour_df.index.astype(str)[0]
или (как я покажу выше) вы можете скрыть список и затем проиндексировать этот список (по некоторым причинам, большинство людей находят его более интуитивным):
peak_hour_df.index.astype(str).to_list()[0]
list(peak_hour_df.index.astype(str))[0]