<p>列<code>tags</code>中的数据是<code>strings</code>,不是<code>dictionaries</code>,有问题。在</p>
<p>所以需要第一步:</p>
<pre><code>import ast
df['tags'] = df['tags'].apply(ast.literal_eval)
</code></pre>
<p>然后应用原始答案,如果有多个字段,效果非常好。在</p>
<p>正在验证:</p>
^{pr2}$
<hr/>
<pre><code>#convert column to string for verify solution
df['tags'] = df['tags'].astype(str)
print (df['tags'].apply(type))
0 <class 'str'>
1 <class 'str'>
2 <class 'str'>
3 <class 'str'>
4 <class 'str'>
Name: tags, dtype: object
#convert back
df['tags'] = df['tags'].apply(ast.literal_eval)
print (df['tags'].apply(type))
0 <class 'dict'>
1 <class 'dict'>
2 <class 'dict'>
3 <class 'dict'>
4 <class 'dict'>
Name: tags, dtype: object
</code></pre>
<hr/>
<pre><code>c = Counter([len(x['tags']) for x in df['tags']])
df = pd.DataFrame({'Number of posts':list(c.values()), ' Number of tags ': list(c.keys())})
print (df)
Number of posts Number of tags
0 1 0
1 1 3
2 1 2
3 1 5
4 1 1
</code></pre>