我有一个pandas系列的dicts,如下所示:
print(df['genres'])
0 {'0': '1', '1': '4', '2': '23'}
1 {'0': '1', '1': '25', '2': '4', '3': '37'}
2 {'0': '9'}
print(type(df['genres']))
<class 'pandas.core.series.Series'>
print(type(df['genres'][0]))
<class 'dict'>
我想计算一下这些值,得到这样的结果:
{'1': 2, '4': 2, '9': 1, '23': 1, '25': 1, '37': 1}
我尝试了以下方法:
print(Counter(chain.from_iterable(df.genres.values)))
Counter({'0': 3, '1': 2, '2': 2, '3': 1})
print(pd.Series(df['genres']).value_counts())
{'0': '1', '1': '4', '2': '23'} 1
{'0': '1', '1': '25', '2': '4', '3': '37'} 1
{'0': '9'} 1
我觉得对于一个比我更有经验的人来说,这很容易。但我真的不明白。。。
尝试:
pd.DataFrame(list(df.genres)).stack().value_counts().to_dict()
输出:
{'1': 2, '4': 2, '37': 1, '9': 1, '23': 1, '25': 1}