Python中文
首页
教程
问答
标签
搜索
登录
注册
将基于条件的列添加到df的有效方法
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个带有两列的大型df:</p> <pre><code>Label Part_id "Replace Cable" "Ethernet Cable" abc123 "Adjust Cable" "Lubricate screw" </code></pre> <p>我希望添加一个列“solution type”,当Part_id不为空或标签上有“replace”/“[p]”字样时,该列将为“Part”,否则将采取行动</p> <p>预期输出如下所示:</p> <pre><code>Label Part_id Solution Type "Replace Cable" Part "Ethernet Cable" abc123 Part "Adjust Cable" Action "Lubricate screw" Action </code></pre> <p>我想出了以下代码:</p> <pre><code>part_hints = r'(\[p\])|replace' df['Solution Type'] = df.apply(lambda x: "Part" if not (pd.isnull(x.part_id)) or x.astype(str).str.contains(part_hints).any() else "Action", axis=1) </code></pre> <p>问题是它真的很慢。。。对于0.5M行的df,这可能需要两分钟的运行时间</p> <p>如果你能想出办法让这更快,我将不胜感激</p> <p>谢谢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>尝试使用<code>np.where()</code>:</p> <pre><code>import numpy as np df["Solution Type"]=np.where( (df['Label'].str.contains(part_hints,case=False,regex=True)) | (df['Part_id'].notna()), "Part", "Action") </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
10 回答
如何添加表示整数的擦边字符串?
8 回答
如何添加要在Bokeh中使用的新font.ttf文件?
8 回答
如何添加要显示的矩阵XY轴编号和XY轴
3 回答
如何添加计数?
10 回答
如何添加计数器函数?
4 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
3 回答
如何添加计数器来跟踪while循环中的月份和年份?
3 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
8 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
8 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
10 回答
如何添加评论拉梅尔亚姆
3 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
1 回答
如何添加谷歌地点自动完成到Flask?
6 回答
如何添加超时、python discord bot
4 回答
如何添加超过1dp的检查
1 回答
如何添加距离方法
7 回答
如何添加跟随游戏的敌人精灵
1 回答
如何添加路径以便python可以找到程序?
5 回答
如何添加身份验证/安全性以使用happybase访问HBase?
7 回答