擅长:python、mysql、java
<p>问题如下</p>
<pre><code> filt = (df1['YM'] == ym )& (df1['REPKCode'] == kcode) & (df1['FamilyNameE'] == fn))
gap = df1[filt]['Actual']
</code></pre>
<p><strong>filt</strong>的值将为1或0,因为您正在检查多个条件</p>
<pre><code> (df1['YM'] == ym )& (df1['REPKCode'] == kcode) & (df1['FamilyNameE'] == fn))
</code></pre>
<p>如果上述条件为真,<strong>filt</strong>将被指定为1,否则为0</p>
<p>所以你的条件是真的,filt==1</p>
<p>现在进入下一行</p>
<pre><code> gap = df1[filt]['Actual']
</code></pre>
<p>你真的在这么做吗</p>
<pre><code> gap = df1[1]['Actual']
</code></pre>
<p>它试图在df1数据帧中找到列“1”,因为没有列作为“1”,这就是它给您错误的原因</p>
<hr/>
<p><strong>编辑</strong></p>
<p>回复您的评论-<em><strong>我如何在df1中获得与“YM”、“REPKCode”、“familyName”匹配的“实际”值?</strong></em></p>
<p>为此,你需要写在下面几行</p>
<pre><code>gap = df1[ df1['YM'] == ym ][ df1['REPKCode'] == kcode][ df1['FamilyNameE'] == fn]['Actual']
</code></pre>
<p>并删除下面的行</p>
<pre><code> filt = (df1['YM'] == ym )& (df1['REPKCode'] == kcode) & (df1['FamilyNameE'] == fn))
gap = df1[filt]['Actual']
</code></pre>