回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在lambda函数中得到这个错误:<code>The truth value of a Series is ambiguous</code>。我知道这里有一个关于这个错误的非常全面的解释,但我不认为这与我的问题有关:
<a href="https://stackoverflow.com/questions/36921951/truth-value-of-a-series-is-ambiguous-use-a-empty-a-bool-a-item-a-any-o">Truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()</a></p>
<p>基本上,我试图通过lambda来确定在同一AccountID中,从一个月到下一个月,<code>OpenBal</code>是否相同,如果相同,则给我一个“1”(例如下面的OpenBal=101)。很明显,第一张唱片应该给我一个NaN。(请注意,感谢@jdehesa在我的另一篇文章中给出的答案)。在</p>
<p>这说明了我的问题:</p>
<pre><code>import pandas as pd
df = pd.DataFrame({'AccountID': [1,1,1,1,2,2,2,2,2],
'RefMonth': [1,2,3,4,1,2,3,4,5],
'OpenBal': [100,101,101,103,200,201,202,203,204]})
SameBal = df.groupby('AccountID').apply(lambda g: 1 if g['OpenBal'].diff() == 0 else 0)
df['SameBal'] = SameBal.sortlevel(1).values
</code></pre>