Python Pandas: заполнить фрейм данных тем же именем категории (в одном столбце) и NaN (в другом) - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть кадр данных, похожий на этот (но гораздо больший):

       year city_code  total_tax
id_inf                           
9       2002       NaN        NaN
9       2003         a      417.0
9       2004         a      950.0
9       2005       NaN        NaN
9       2006       NaN        NaN
54      2002         b      801.0
54      2003       NaN        NaN
54      2004         b      218.0
54      2005         b      886.0
54      2006         b      855.0

Мне нужно заполнить 'city_code' той же категорией 'id_inf' и заменить NaN нулями в столбце 'total_tax'.

Второе задание довольно просто: df_balanced['total_tax'] = df_balanced['total_tax'].fillna(0)

Но для первого задания мне предложили использовать что-то похожее на: 'df_balanced [' city_code '] = df_balanced.groupby (level= 0) [ 'city_code']. преобразования (макс).Однако, когда я использую это решение, я получаю эту ошибку: TypeError: '>=' not supported between instances of 'float' and 'str'

Мне нужен вывод примерно такой:

        year city_code  total_tax
id_inf                           
9       2002         a        0.0
9       2003         a      417.0
9       2004         a      950.0
9       2005         a        0.0
9       2006         a        0.0
54      2002         b      801.0
54      2003         b        0.0
54      2004         b      218.0
54      2005         b      886.0
54      2006         b      855.0

1 Ответ

0 голосов
/ 23 ноября 2018

Использование first

df['city_code']=df.groupby('id_inf').city_code.transform('first')
#df.groupby('id_inf').city_code.transform('first')
Out[278]: 
id_inf
9     a
9     a
9     a
9     a
9     a
54    b
54    b
54    b
54    b
54    b
Name: city_code, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...