Python中文
首页
教程
问答
标签
搜索
登录
注册
Pandas根据条件将一列映射到另一列
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个数据帧</p> <pre><code> game_id move_number move colour avg_centi phase 0 03gDhPWr 1 e4 white NaN opening 1 03gDhPWr 2 d5 black 37.0 opening 2 03gDhPWr 3 e5 white 61.0 opening 3 03gDhPWr 4 c5 black -5.0 opening 4 03gDhPWr 5 Nf3 white 26.0 opening ... ... ... ... ... ... ... 110093 zzaiRa7s 36 a5+ black NaN endgame 110094 zzaiRa7s 37 Kxb5 white NaN endgame 110095 zzaiRa7s 38 c6+ black NaN endgame 110096 zzaiRa7s 39 Ka4 white NaN endgame 110097 zzaiRa7s 40 Q@b4# black NaN endgame </code></pre> <p>我想映射<code>colour</code>列,这样当颜色为<code>black</code>时,<code>colour</code>列的值将替换为<code>phase</code>列中的值。我希望使用pandas <code>map</code>或<code>apply</code>函数来实现这一理想。不是<code>replace</code>太慢了。在</p> <p>生成的数据帧应如下所示:</p> ^{pr2}$ <p>我尝试过以下代码,但似乎不太管用:</p> <pre><code>def wrangle_game_phase(x): if x == 'black': return phase else: return x df['game_type'] = df['colour'].apply(wrangle_game_phase) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>使用<code>np.where</code></p> <p><strong>例如:</strong>:</p> <pre><code>df['game_type'] = np.where(df["colour"] == 'black', df["phase"], df["colour"]) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何提高Djang的410误差
5 回答
如何提高doc2vec模型中两个文档(句子)的余弦相似度?
3 回答
如何提高Docker的日志限制?|[输出已剪裁,达到日志限制100KiB/s]
1 回答
如何提高DQN的性能?
4 回答
如何提高EasyOCR的准确性/预测?
1 回答
如何提高Euler#39项目解决方案的效率?
8 回答
如何提高F1成绩进行分类
10 回答
如何提高FaceNet的准确性
3 回答
如何提高fft处理的精度?
4 回答
如何提高Fibonacci实现对大n的精度?
1 回答
如何提高Flask与psycopg2的连接时间
4 回答
如何提高FosterCauer变换的scipy.signal.invres()的数值稳定性?
7 回答
如何提高gae查询的性能?
8 回答
如何提高GANs用于时间序列预测/异常检测的结果
7 回答
如何提高gevent和tornado组合的性能?
10 回答
如何提高googleappengin请求日志的吞吐量
8 回答
如何提高googlevision文本识别的准确性
10 回答
如何提高groupby/apply效率
1 回答
如何提高Gunicorn中的请求率
4 回答
如何提高G中的文件编码转换
2 回答