擅长:python、mysql、java
<p><strong>溶液,TL;DR</strong></p>
<p>使函数返回与原始数据帧中的列数相等的元素数。所以在本例中,让<code>get_q6</code>返回6个元素,这样返回的数组的第一行正好有6个元素。在</p>
<p><strong>原因</strong></p>
<p>查看熊猫源代码。在您的例子中,原始数据帧的形状是<code>implied=(5,6)</code>。因此Pandas中的<code>internals.construction_error()</code>试图验证应用函数<code>get_q6</code>后返回的数组是否具有相同的形状。在</p>
<p>在返回的数组中,当对每一行应用func时,有5行。现在要查找列,需要返回数组的<strong>第一个</strong>行。如果<code>get_q6</code>有6个元素,那么它将验证它们是否都具有<code>(5,6)</code>的形状。在</p>
<p>但是在您的例子中,返回的数组要么有5个元素(当<code>get_q6</code>返回<code>[1,2,3,4,5]</code>)要么只有1个(当<code>get_q6</code>返回{<cd10>})时,<strong>不是</strong>6个元素。可能,在第一行<code>get_q6 returns</code>[None]<code>. So the shape of the returned array is calculated as</code>passed=(5,1)`。在</p>
<p>最后,<code>implied==passed</code>计算为false并抛出一个错误。在</p>