python - Pandas - 正确使用 Apply 函数

标签 python pandas

我有一个 pandas 框架“df”,如下所示:

    col1 col_group
0    1    1
1   -1    0
2   -2    0
3    4    2
4    2    1

我正在尝试复制“col1”中的值,除非我想修改“col1”中的值(如果它们位于“col_group”0 或 2 中)。修改只是将现有值乘以 50 %。我需要在 1MM+ 行上执行此操作,所以我想知道是否有生成新列的最佳方法?

所以我想要的输出是:

  col1 col_group New
0    1    1      1
1   -1    0      -0.5
2   -2    0      -1
3    4    2      2
4    2    1      2

我目前正在使用 for 循环,但认为 pandas 中可能有更快的东西。

谢谢

最佳答案

    df['new_col'] = df.apply( lambda x: x['col1'] * .5 
                              if x['col_group'] in (0, 2) else x['col1'], 
                              axis=1)

关于python - Pandas - 正确使用 Apply 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947531/

相关文章:

Python 安全字典键访问

python - 如何使用 pandas 创建新的 df 列以使用正则表达式获取列名称和值?

python - 数据框中的月份列,加上月份数,与当前日历月进行比较

python - FunctionTransformer & 在管道中创建新列

python - 使用 pandas 将非数字列值替换为 float

python - 创建后如何移动 Qt QPainterPath 中的点?

python - 如何从 RegEx(正则表达式)生成所有组合?

python - Neo4j 使用 py2neo 从 pandas dataframe 创建节点和关系

python - 如何使用不满足条件的情况下的随机值修改数据帧值

python - 终端无法找到/使​​用 Pip3 包