我收到此错误:The truth value of a Series is ambiguous
在我的 lambda 函数中。我知道这是围绕此错误的非常全面的解释,但我认为这与我的问题无关:
系列的真值是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
基本上我试图通过 lambda 确定OpenBal
在同一个 AccountID 中从一个月到下一个月是否相同,如果相同,则给我一个“1”(例如,对于下面的 OpenBal=101)。显然,第一条记录应该给我一个 NaN。(PS 感谢@jdehesa 在我的另一篇文章中的回答)。
这说明了我的问题:
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