首页 > 解决方案 > 尝试使用 if/then 语句访问正确的列值时出现 RecursionError

问题描述

我有一个数据框,在我将其拆分并扩展.str.split(' ', 40, expand=True)为每行的整个物理地址后,它看起来像这样。

0       1   2             3        4        5           flag
1255    N   Camino        AVE      1071     San Diego   1     
1255    N   DelSur        AVE      1191     San Diego   1     
3642    E   CONSTITUTION  DR    San Diego   CA          0

现在,我想编写一个覆盖列 [4] 的条件函数。我想说如果 flag==1 然后用空格替换列 [4] 值,否则保留列 [4] 中的值。这是示例,输出应如下所示:

0       1   2             3        4        5           flag
1255    N   Camino        AVE               San Diego   1     
1255    N   DelSur        AVE               San Diego   1     
3642    E   CONSTITUTION  DR    San Diego   CA          0

但是,就我而言,它会吐出一个错误。这是我的代码:
df[4] = ['' if i=='1' else addresses[4] for i in df['flag']]

**The output is an error: RecursionError: maximum recursion depth exceeded while calling a Python object**

有人可以帮忙吗?

标签: pythonpandas

解决方案


我们通常做np.where

df[4] = np.where(df['flag']==1, '', df[4])

推荐阅读