<p><code>beers</code>不是<code>Series</code>否则代码工作正常。它当然是一个<code>DataFrame</code>并且很可能是一个<code>DataFrame</code>只有一列</p>
<p>演示:</p>
<pre><code>>>> beers = pd.Series(np.random.randint(1, 10, 20))
>>> type(beers)
pandas.core.series.Series
>>> (beers[:10] - beers.mean()).apply(lambda x: 'low' if x < 0 else 'high')
0 high
1 low
2 high
3 low
4 high
5 high
6 low
7 high
8 high
9 low
dtype: object
</code></pre>
<p>现在,如果<code>beers</code>是<code>DataFrame</code>:</p>
<pre><code>>>> beers = beers.to_frame()
>>> type(beers)
pandas.core.frame.DataFrame
>>> (beers[:10] - beers.mean()).apply(lambda x: 'low' if x < 0 else 'high')
...
ValueError: The truth value of a Series is ambiguous.
Use a.empty, a.bool(), a.item(), a.any() or a.all().
</code></pre>
<p>在<code>beers</code>只有一列的情况下,可以使用<code>squeeze</code>:</p>
<pre><code>>>> (beers[:10] - beers.mean()).squeeze().apply(lambda x: 'low' if x < 0 else 'high')
0 high
1 low
2 high
3 low
4 high
5 high
6 low
7 high
8 high
9 low
Name: 0, dtype: object
</code></pre>