Ошибки во время группировки на панде - PullRequest
0 голосов
/ 17 октября 2018

Подскажите, пожалуйста, что ниже, я немного застрял.

Итак, в dataframe3 есть столбцы 'domain' и 'size'.Мой скрипт очищает домен и добавляет новый столбец с именем 'newdomain2'

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

Итак, df4 должен быть агрегированнымверсия df3 (сгруппирована по домену + сумма (размер), но когда я пытаюсь описать ниже, я получаю эту ошибку:

TypeError: unhashable type: 'list'

Я должен отметить, чтоесли я использую «домен» вместо «cleandomain2» в том же сценарии, он работает без ошибок.

Можете ли вы помочь мне понять, почему это может быть?

 df3['newdomain2']=cleandomain
 #show df3
 df3

 df4 = df3.groupby(['newdomain2'])[['size']].sum()

Вот сценарий, который я использую для генерации новых значений столбцов и добавления значений к фрейму данных

for x in index:
     #if it ends with a number, it's an IP
     if str(x[len(x)-1]).isnumeric():
         cleandomain.append(str(x[0])+'.'+str(x[1])+'.*.*')
     #if its in the CDN list, take a subdomain as well
     elif str(x[len(x)-2]).rstrip() in cdns:
         cleandomain.append(str(x[len(x)-3])+'.'+str(x[len(x)-2])+'.'+str(x[len(x)-1]))
     elif str(x[len(x)-3]).rstrip() in cdns:
         cleandomain.append(str(x[len(x)-4])+'.'+str(x[len(x)-3])+'.'+str(x[len(x)-2])+'.'+ str(x[len(x)-1]))
    #if its in the TLD list, do this
     elif str(x[len(x)-2]).rstrip()+'.'+ str(x[len(x)-1]).rstrip() in tld:
         cleandomain.append(str(x[len(x)-3])+'.'+str(x[len(x)-2])+'.'+ str(x[len(x)-1]))
     elif str(x[len(x)-1]) in tld:
         cleandomain.append(str(x[len(x)-2])+'.'+ str(x[len(x)-1]))
    #if its not in the TLD list, do this
     else:
         cleandomain.append(x)
 #add column do df3
 df3['newdomain2']=cleandomain

1 Ответ

0 голосов
/ 17 октября 2018

Вы не можете напрямую поместить список в столбец данных,

df3['your_col'] = pd.Series(your_list).values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...