Возвращение индекса Pandas DataFrame в виде строки - PullRequest
2 голосов
/ 29 апреля 2020

Я хочу вернуть индекс моего DataFrame в виде строки. Я использую эту команду p_h = peak_hour_df.index.astype(str).str.zfill(4) Она не работает, я получаю такой результат: Index(['1645'], dtype='object', name Мне нужно, чтобы она возвращала строку '1645' Как мне выполнить sh это?

1 Ответ

2 голосов
/ 29 апреля 2020

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

до 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]

или (как я покажу выше) вы можете скрыть список и затем проиндексировать этот список (по некоторым причинам, большинство людей находят его более интуитивным):

  1. peak_hour_df.index.astype(str).to_list()[0]
  2. list(peak_hour_df.index.astype(str))[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...