Как объединить и суммировать словари в кадре данных по заданному столбцу - PullRequest
0 голосов
/ 11 февраля 2020

Я бы хотел суммировать словари в соответствии со значением столбца кадра данных:

Q                                                       Class
0   {'s02q02': 1, 'self': 1, 'employed': 3, '': 11...   Undecided
1   {'s02q02': 1, 'unemployed': 2, '': 270, 'perso...   Undecided
2   {'s02q02': 1, 'unemployed': 2, '': 112, 'perso...   PSOE
...

Для начала я попытался:

{ k: df.iloc[0].get(k, 0) + df.iloc[1].get(k, 0) for k in df['Q'] }

Но получил:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-106-4c1cfd4b5445> in <module>
----> 1 { k: df.iloc[0].get(k, 0) + df.iloc[1].get(k, 0) for k in df['Q'] }

<ipython-input-106-4c1cfd4b5445> in <dictcomp>(.0)
----> 1 { k: df.iloc[0].get(k, 0) + df.iloc[1].get(k, 0) for k in df['Q'] }

TypeError: unhashable type: 'Counter'

Приложение: как я сделал фрейм данных

cols=df.iloc[:,25:-1].columns.values
df["Q"]=x[0]
for i in cols[1:]:
    df["Q"]=df["Q"].str.cat(df[i], sep=" ")

    df["Q"]=df["Q"].str.lower()

df["Q"]=df["Q"].str.split("[^\w]").apply(Counter)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...