因此,我编写了一个函数,该函数将满足条件的2个数据帧列填充为空值。我已经编写了单元测试,它们都可以工作。
在实际数据上运行时,有时会导致ValueError: cannot set using a list-like indexer with a different length than the value
我很困惑,因为我的单元测试通过了。代码本质上是这样的:
df.loc[df['column'].isin(column_values_to_update), ['col2', 'col3']] = df[['col2', 'col3']].fillna(0)
它在column_values_to_update
为空时有效,在其满时有效...但是在某些数据集上运行时,出现ValueError且我不确定为什么...。我已重置索引在到达这一点之前,没有运气。
任何人都不知道为什么有时会出现此错误,而有时却不会?让我知道您是否需要更多信息...
答案 0 :(得分:0)
最后,我通过添加一个if子句解决了这个问题,仅当column_values_to_update
(它是一个Set)不为空时,才在其中使用.loc。
我仍然感到困惑,因为我的单元测试仍然column_values_to_update
为空。
好吧