根据条件在多个数据框列中填充空值

时间:2020-06-05 21:26:23

标签: python-3.x pandas

因此,我编写了一个函数,该函数将满足条件的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且我不确定为什么...。我已重置索引在到达这一点之前,没有运气。

任何人都不知道为什么有时会出现此错误,而有时却不会?让我知道您是否需要更多信息...

1 个答案:

答案 0 :(得分:0)

最后,我通过添加一个if子句解决了这个问题,仅当column_values_to_update(它是一个Set)不为空时,才在其中使用.loc。

我仍然感到困惑,因为我的单元测试仍然column_values_to_update为空。

好吧