python - 尝试使用 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**
有人可以帮忙吗?
解决方案
我们通常做np.where
df[4] = np.where(df['flag']==1, '', df[4])
推荐阅读
- android - Tasker:在 xml 文件中编辑 android 应用程序的设置
- storage - 我正在尝试使用rocksdb作为存储后端进行缓存
- mysql - Spring Boot MySQL Docker 引起:java.net.ConnectException:连接被拒绝(连接被拒绝)
- javascript - 无法从本地文件系统加载 pdf (IONIC 4 - Android)
- optimization - 为什么我的移动平均算法这么慢?
- saml - Weblogic12c 使用 ADFS 配置 SAML SSO
- python-3.x - 如何从打字模块导入列表以识别类中的类型列表[int]?
- android - 当我们在 Android 10 中将 xfermode 用作 PorterDuffXfermode(PorterDuff.Mode.DARKEN) 时,绘制不可见
- reactjs - 如何在 nextjs 中将数据从一个组件发送到另一个组件
- oracle - Oracle DataAdapter Update 方法在 updateBatchSize=0 时只插入一行