擅长:python、mysql、java
<p>您可以通过对列求和(基本上是连接内容)然后对它们调用<code>pd.value_counts</code>来实现这一点。例如(稍微修改数据帧定义,使其不会引发错误):</p>
<pre><code>df = pd.DataFrame(dict(a=[(1,2),(2,3),(1,)],
b=[(1,3),(2,5),()],
c=['a','b','c']))
counts = pd.DataFrame({col: pd.value_counts(df[col].sum())
for col in ['a', 'b']})
counts.plot(kind='bar')
</code></pre>
<p><a href="https://i.stack.imgur.com/7hYX9.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/7hYX9.png" alt="enter image description here"/></a></p>
<hr/>
<p>(先前对问题原文的答复):</p>
<p>您可以使用一个映射获得<code>2</code>所在的所有行</p>
^{pr2}$
<p>您可以使用<code>groupby</code>后跟<code>filter</code>来完成类似的操作,不过首先必须将<code>a</code>值转换为元组,以便它们是散列的(并且可以是组键):</p>
^{3}$
<p>一旦得到了这些结果中的任何一个,就可以使用,例如<code>result['a'] = 2</code>来替换<code>a</code>列中的值。在</p>