0

I have the dictionary and the dataframe. I would like to replace keys to values in column 'x_kod'. How can I do that?

lookup_x_kod = {
    'BUBD01': 'budynki mieszkalne jednorodzinne',
    'BUBD02': 'budynki o dwóch mieszkaniach',
    'BUBD03': 'budynki o trzech i więcej mieszkaniach',
    'BUBD04': 'budynki zbiorowego zamieszkania',
    'BUBD05': 'budynki hoteli',
    'BUBD06': 'budynki zakwaterowania turystycznego, pozostałe',
    'BUBD07': 'budynki biurowe',
    'BUBD08': 'budynki handlowo-usługowe',
    'BUBD09': 'budynki łączności, dworców i terminali',
    'BUBD10': 'budynki garaży',
    'BUBD11': 'budynki przemysłowe',
    'BUBD12': 'zbiorniki, silosy i budynki magazynowe',
    'BUBD13': 'ogólnodostępne obiekty kulturalne',
    'BUBD14': 'budynki muzeów i bibliotek',
    'BUBD15': 'budynki szkół i instytucji badawczych',
    'BUBD16': 'budynki szpitali i zakładów opieki medycznej',
    'BUBD17': 'budynki kultury fizycznej',
    'BUBD18': 'budynki gospodarstw rolnych',
    'BUBD19': 'budynki przeznaczone do sprawowania kultu religijnego i czynności religijnych',
    'BUBD20': 'obiekty budowlane wpisane do rejestru zabytków i objęte indywidualną ochroną konserwatorską oraz nieruchome, archeologiczne dobra kultury',
    'BUBD21': 'pozostałe budynki niemieszkalne, gdzie indziej nie wymienione',
}

enter image description here

  • 1
    `df['x_kod'].map(lookup_x_kod)` can be work. – Ferris Jan 07 '21 at 09:37
  • df['funOgolnaBudynku'] = df['funOgolnaBudynku'].map(lookup_funOgolnaBudynku), I'am getting "nan" I every record of column 'funOgolnaBudynku'. Do you know why? Can I use .map only once? –  Jan 07 '21 at 09:45
  • value that is not in the dict's key. It will return nan. – Ferris Jan 07 '21 at 09:49
  • The value is in the dict's key. –  Jan 07 '21 at 09:49
  • maybe `funOgolnaBudynku` has unseen symbol, how about `df['funOgolnaBudynku'].str.strip().map` – Ferris Jan 07 '21 at 09:52
  • you can only use `df['funOgolnaBudynku'] = df['funOgolnaBudynku'].map(lookup_funOgolnaBudynku)` once, because the value is changed when use map and assign to the origin column. – Ferris Jan 07 '21 at 09:53
  • lookup_x_katIstnienia = { 'Eks': 'eksploatowany', 'Bud': 'w budowie', 'Zns': 'zniszczony', 'Tmc': 'tymczasowy', 'Ncn': 'nieczynny', } –  Jan 07 '21 at 10:03
  • df['x_katIstnienia'] = df['x_katIstnienia'].map(lookup_funOgolnaBudynku) / and im getting 'nan. Why? –  Jan 07 '21 at 10:03

2 Answers2

0

Use series.map:

df['x_kod'] = df['x_kod'].map(lookup_x_kod)
Sayandip Dutta
  • 15,602
  • 4
  • 23
  • 52
0

You can use the look_x_kod dictionary

import pandas as pd

>>> lookup_x_kod = {
...     'BUBD01': 'budynki mieszkalne jednorodzinne',
...     'BUBD02': 'budynki o dwóch mieszkaniach',
...     'BUBD03': 'budynki o trzech i więcej mieszkaniach',
...     'BUBD04': 'budynki zbiorowego zamieszkania',
...     'BUBD05': 'budynki hoteli',
...     'BUBD06': 'budynki zakwaterowania turystycznego, pozostałe',
...     'BUBD07': 'budynki biurowe',
...     'BUBD08': 'budynki handlowo-usługowe',
...     'BUBD09': 'budynki łączności, dworców i terminali',
...     'BUBD10': 'budynki garaży',
...     'BUBD11': 'budynki przemysłowe',
...     'BUBD12': 'zbiorniki, silosy i budynki magazynowe',
...     'BUBD13': 'ogólnodostępne obiekty kulturalne',
...     'BUBD14': 'budynki muzeów i bibliotek',
...     'BUBD15': 'budynki szkół i instytucji badawczych',
...     'BUBD16': 'budynki szpitali i zakładów opieki medycznej',
...     'BUBD17': 'budynki kultury fizycznej',
...     'BUBD18': 'budynki gospodarstw rolnych',
...     'BUBD19': 'budynki przeznaczone do sprawowania kultu religijnego i czynności religijnych',
...     'BUBD20': 'obiekty budowlane wpisane do rejestru zabytków i objęte indywidualną ochroną konserwatorską oraz nieruchome, archeologiczne dobra kultury',
...     'BUBD21': 'pozostałe budynki niemieszkalne, gdzie indziej nie wymienione',
... }
>>>
>>> df = pd.DataFrame(data=['BUBD01','BUBD01','BUBD16','BUBD04','BUBD05','BUBD12','BUBD21','BUBD10'],columns=['x_kod'])
>>> df['x_kod_value'] = df['x_kod'].apply(lambda x:lookup_x_kod[x])
>>> df
    x_kod                                        x_kod_value
0  BUBD01                   budynki mieszkalne jednorodzinne
1  BUBD01                   budynki mieszkalne jednorodzinne
2  BUBD16       budynki szpitali i zakładów opieki medycznej
3  BUBD04                    budynki zbiorowego zamieszkania
4  BUBD05                                     budynki hoteli
5  BUBD12             zbiorniki, silosy i budynki magazynowe
6  BUBD21  pozostałe budynki niemieszkalne, gdzie indziej...
7  BUBD10                                     budynki garaży
>>>
Vaebhav
  • 4,672
  • 1
  • 13
  • 33