python - 在熊猫中使用函数(或其他方式)更改列的正确方法
问题描述
我正在尝试学习熊猫并以熊猫的方式做事。我有一个 DataFrame,我想在其中对某些列应用某种功能。我做了一些可行的事情,但我想知道这是一种熊猫方式,或者它是否“错误”。问题是我的数据框现在大约有 400 000 行和 21 列,但那时会比现在更大,所以我想做所有“最好”的方式。我留下一个例子。对于 DataFrame,我想对一列进行操作,并且对该列的每一行应用一个函数,该函数使用其他列的值,但又是同一行的值。这或多或少是我所做的,这行得通,但熊猫在想吗?有一种有效的方法来做这样的事情吗?
def resultWohKomi(orders,outcomes,komis): # outcomes and komis are floats
try:
result = orders[1] # order is a [1,0] or [0,1]
when_black_win_then_positive_else_negative = 2*result-1
points = when_black_win_then_positive_else_negative*(outcomes + komis)
if points > 0:
result = [1,0]
else:
result = [0,1]
return result
except:
return orders
Type_new = df.apply(lambda x: resultWohKomi(x.order,x.outcome,x.komi), axis=1)
df.insert(2, "results",Type_new)
df.order 是 [1,0] 或 [0,1] (整数列表)
df.outcome 是像 19.0 这样的浮点数
df.komi 是像 6.5 这样的浮点数
解决方案
推荐阅读
- bash - 如何在 docker 中使用 gulp 运行 node.js 并找到正确的 bashsrc
- plotly-dash - 将 SHAP 的 HTML 输出放入 Dash 输出布局回调中
- c - 编译成 exec 时如何保留 xcode 工作目录?
- javascript - How to get variables from js and use them in php
- python - Python pip 从 pip freeze 的输出中找出基本要求
- css - 使用 CSS 过渡时如何防止重绘其他元素
- c# - 通过 JSON 将复杂对象发布到 MVC Web API
- audio - FFMPEG amix 过滤器导致主音频流被切断
- excel - Access VBA:运行时错误“13”类型不匹配
- html - 如何让浏览器要求保存密码并自动填写登录凭据