получить dtype для мультииндекса панд - PullRequest
0 голосов
/ 29 июня 2018

Как я могу найти dtype из MultiIndex в пандах без распечатывания всех значений (это происходит, например, если вы наберете df.index). Я просто хочу знать названия индексов и их типы.

Ex:

df = pd.DataFrame({"a": np.arange(100000), "b": np.arange(100000)[::-1]}, index=pd.MultiIndex.from_arrays([np.arange(100000), np.arange(100000)[::-1]], names=["i1", "i2"]))

делает

df.index

на самом деле потребуется некоторое время для печати, для большого df это слишком долго.

Ответы [ 2 ]

0 голосов
/ 15 июля 2018

Основываясь на великолепном ответе @Scott Boston, я написал эту функцию для быстрой проверки dtypes всех уровней мультииндексных dfs и просто подумал, что поделюсь:

def index_level_dtypes(df):
    return [f"{df.index.names[i]}: {df.index.get_level_values(n).dtype}"
            for i, n in enumerate(df.index.names)]
0 голосов
/ 29 июня 2018

Используйте get_level_values:

df.index.get_level_values(0).dtype
dtype('int64')

и

df.index.get_level_values(1).dtype
dtype('int64')

Для имен используйте:

df.index.names
FrozenList(['i1', 'i2'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...