Python中文
首页
教程
问答
标签
搜索
登录
注册
在每行中应用逻辑比应用lambda更快吗?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个df:</p> <pre><code>dfs = """ contract Valindex0 RB Valindex1 2 A00118 51 0 50 3 A00118 42 1 47 4 A00118 44 1 47 """ df = pd.read_csv(StringIO(dfs.strip()), sep='\s+') </code></pre> <p>df:</p> <pre><code> contract Valindex0 RB Valindex1 2 A00118 51 0 50 3 A00118 42 1 47 4 A00118 44 1 47 </code></pre> <p>我想在df['Valindex']的每一行中添加一个新列</p> <p>此列值为</p> <pre><code> df['Valindex0'] </code></pre> <p>或</p> <pre><code> df['Valindex1'] </code></pre> <p>这取决于df['RB']:</p> <pre><code>if df['RB']==0: df['Valindex'] = df['Valindex0'] elif df['RB']==1: df['Valindex'] = df['Valindex1'] </code></pre> <p>现在我正在使用apply lambda,但速度非常慢:</p> <pre><code>df['Valindex'] = df.apply( lambda df: df["Valindex" + str(df["RB"])], axis=1) </code></pre> <p>输出应如下所示:</p> <pre><code> contract Valindex0 RB Valindex1 Valindex 2 A00118 51 0 50 51 3 A00118 42 1 47 47 4 A00118 44 1 47 47 </code></pre> <p>有没有更快的办法</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>让我们试试看</p> <pre><code>df['Valindex'] = df['Valindex0'] df.loc[df.RB==1,'Valindex'] = df['Valindex1'] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
1 回答
如何添加表示整数的擦边字符串?
2 回答
如何添加要在Bokeh中使用的新font.ttf文件?
7 回答
如何添加要显示的矩阵XY轴编号和XY轴
6 回答
如何添加计数?
1 回答
如何添加计数器函数?
6 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
2 回答
如何添加计数器来跟踪while循环中的月份和年份?
7 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
1 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
8 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
3 回答
如何添加评论拉梅尔亚姆
2 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
3 回答
如何添加谷歌地点自动完成到Flask?
8 回答
如何添加超时、python discord bot
5 回答
如何添加超过1dp的检查
7 回答
如何添加距离方法
9 回答
如何添加跟随游戏的敌人精灵
4 回答
如何添加路径以便python可以找到程序?
9 回答
如何添加身份验证/安全性以使用happybase访问HBase?
2 回答