pandas – добавить новый столбец в dataframe из словаря

Я хотел бы добавить столбец «D» к кадру данных следующим образом:

U,L 111,en 112,en 112,es 113,es 113,ja 113,zh 114,es 

на основе следующего Словаря:

 d = {112: 'en', 113: 'es', 114: 'es', 111: 'en'} 

так что результирующий блок данных выглядит следующим образом:

 U,L,D 111,en,en 112,en,en 112,es,en 113,es,es 113,ja,es 113,zh,es 114,es,es 

Пока я попробовал метод pd.join() но не могу понять, как он работает со pd.join() .

  • Не удается заставить Django обслуживать статические файлы
  • Как извлечь схему для файла avro в python
  • Почему 1 +++ 2 = 3?
  • Замените пустые строки значениями None / null в DataFrame
  • Пользовательские шаблоны admin django не работают
  • Как получить Github Webhooks в Python
  • Полнотекстовый поиск: Whoosh Vs SOLR
  • Как сохранить изображение локально с помощью Python, URL-адрес которого я уже знаю?
  • 3 Solutions collect form web for “pandas – добавить новый столбец в dataframe из словаря”

    Вызовите map и передайте dict, это выполнит поиск и вернет связанное значение для этого ключа:

     In [248]: d = {112: 'en', 113: 'es', 114: 'es', 111: 'en'} df['D'] = df['U'].map(d) df Out[248]: ULD 0 111 en en 1 112 en en 2 112 es en 3 113 es es 4 113 ja es 5 113 zh es 6 114 es es 

    Я получил TypeError: 'dict' object is not callable ошибкой для решения EdChum, когда я пытаюсь использовать index.map () … И я не нашел способ получить индекс как Серии.

    Поэтому я нашел другое решение этой проблемы, сначала создав объект Series из объекта dict.

     new_d = pd.Series(d) 

    И затем сделайте pd.join со столбцом, который вам нравится. Это может помочь.

    Вот более простой способ, который должен хорошо работать:

    df["D"] = pd.Series(d)

    Примечание. Для этого нужно использовать указатели dict в индексе DataFrame.

    Python - лучший язык программирования в мире.