Я бы хотел суммировать словари в соответствии со значением столбца кадра данных:
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)