<p>使用<code>eval</code>:</p>
<pre><code>df['col4'] = df.eval('col1 == "Hello"')
df
col3 col4
col1 col2
A foo 3 False
B bar 1 False
Hello baz 3 True
C foz 4 False
</code></pre>
<p>对于部分字符串搜索,请将<code>str.contains</code>与<code>engine='python'</code>一起使用。你知道吗</p>
<pre><code>df['col4'] = df.eval('col1.str.contains("Hello")', engine='python')
df
col3 col4
col1 col2
A foo 3 False
B bar 1 False
Hello baz 3 True
C foz 4 False
</code></pre>
<hr/>
<p>另一个选项是查询<code>MultiIndex.get_level_values</code>:</p>
<pre><code>df['col4'] = df.index.get_level_values('col1') == 'Hello'
df
col3 col4
col1 col2
A foo 3 False
B bar 1 False
Hello baz 3 True
C foz 4 False
</code></pre>
<p>如果这是部分字符串搜索问题,请在此处使用<code>str.contains</code>:</p>
<pre><code>df['col4'] = df.index.get_level_values('col1').str.contains('Hello')
df
col3 col4
col1 col2
A foo 3 False
B bar 1 False
Hello baz 3 True
C foz 4 False
</code></pre>
<hr/>
<p>最后,如果要执行相等比较(而不是部分字符串匹配),可以使用<code>loc</code>和<code>pd.IndexSlice</code>进行赋值:</p>
<pre><code>df['col4'] = False
df.loc[pd.IndexSlice['Hello', :], 'col4'] = True
df
col3 col4
col1 col2
A foo 3 False
B bar 1 False
Hello baz 3 True
C foz 4 False
</code></pre>