Перенести имена столбцов данных в панде в словарь - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь преобразовать имена столбцов данных в pandas в словарь.Не очень беспокоюсь о реальных данных в фрейме данных.

Скажем, у меня есть пример фрейма данных, подобный этому, и я сейчас не слишком беспокоюсь об индексе:

Col1 Col2 Col3 Col4
--------------------
 a    b    c    a
 b    d    e    c

Я бы хотелчтобы получить вывод словаря, например:

{'Col1': 0, 'Col2': 1, 'Col3': 2, 'Col4': 3}

Не слишком беспокоитесь о порядке их распечатки, если назначенные ключи в словаре сохраняют порядок для каждого имени столбца.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Вместо использования перечисления, как опубликовал @StephenRauch, вы также можете использовать метод pandas.Index, get_loc:

{i:df.columns.get_loc(i) for i in df.columns}

Использование настроек Стивена:

import pandas as pd

df = pd.DataFrame({'date': ['2015-01-01', '2015-01-02', '2015-01-03'],
                   'value': ['a', 'b', 'c'],
                   'num': [1, 2, 3]
                   })

print(df)
print({i:df.columns.get_loc(i) for i in df.columns})

Вывод:

         date value  num
0  2015-01-01     a    1
1  2015-01-02     b    2
2  2015-01-03     c    3

{'date': 0, 'value': 1, 'num': 2}
0 голосов
/ 13 февраля 2019

Это прямо с пониманием как:

Код:

{c: i for i, c in enumerate(df.columns)}

Тестовый код:

import pandas as pd

df = pd.DataFrame({'date': ['2015-01-01', '2015-01-02', '2015-01-03'],
                   'value': ['a', 'b', 'c'],
                   'num': [1, 2, 3]
                   })

print(df)
print({c: i for i, c in enumerate(df.columns)})

Результаты:

         date  num value
0  2015-01-01    1     a
1  2015-01-02    2     b
2  2015-01-03    3     c

{'date': 0, 'num': 1, 'value': 2}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...