Как поместить ключи словаря в качестве значения столбца в pandas dataframe? - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть два кадра данных df & df1, и я преобразовал df1 в словарь, поскольку он содержит только два столбца.Как показано ниже:

import pandas as pandas
df = pd.read_csv('data.csv')
df['company'] = 0
df1 = pd.read_csv('data1.csv')

mydict = dict(zip(df1.agent_id, df1.company))

for x in df.agent_id:
   for k,v in mydict.items():
      if k == x:
        df.loc[df['company']] = v

Теперь я хочу добавить значение mydict в качестве значения в столбце df['company'], если оно удовлетворяет следующим условиям.Как я могу это сделать?кто-нибудь может объяснить?Я знаю, что мне просто не хватает простой логики.Я не могу понять это.

, если df это

        agent_id
0            184
1            182
2            113
3            157
4            137
5            199
6            181

и mydict это:

mydict = {184: 'LuxuryPods',
          113: 'smartflat.com',
          157: 'ApartaMinutes',
          199: 'HouseMouse',
          181: 'LuxuryPods',
          182: 'Ramax',
          137: 'LuxuryPods'}

, тогда результирующий df должно выглядеть так:

        agent_id      company
0            184      LuxuryPods
1            182      Ramax
2            113      smartflat.com
3            157      ApartaMinutes
4            137      LuxuryPods
5            199      HouseMouse
6            181      LuxuryPods

1 Ответ

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

попробуйте следующий код

df = pd.DataFrame({'agent_id': [184, 182, 113, 157]})

mydict = {184: 'LuxuryPods',
          113: 'smartflat.com',
          157: 'ApartaMinutes',
          182: 'Ramax'}

df['company'] = df['agent_id'].map(mydict)

Вывод

   agent_id        company
0       184     LuxuryPods
1       182          Ramax
2       113  smartflat.com
3       157  ApartaMinutes

Ключ в основном заключается в использовании функции map для сопоставления всех значений в agent_id с соответствующей компанией.С помощью функции map вы также можете указать, какие значения вы хотите, в случае, если совпадение не найдено.Аргументом является na_action.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...