Python如何将指定列中的奇数(除1外)向上取整为相邻偶数
实现方案
这里以常用的Pandas库为例实现需求,步骤如下:
步骤1:指定目标列
直接把你需要处理的列名存入列表即可,比如要处理示例中的a、b两列,写法如下:
target_cols = ['a', 'b']
如果后续需要新增/减少处理的列,修改这个列表的内容即可。
步骤2:数据处理
提供两种常用实现方式,按需选择:
方式1:apply写法(适合小数据量,逻辑直观)
import pandas as pd # 构造示例数据,你自己用的时候可以替换成读取自己的数据集,比如pd.read_excel/ pd.read_csv df = pd.DataFrame({ 'site': ['bali', 'mali'], 'a': [5, 7], 'b': [3, 19], 'c': [1, 1] }) target_cols = ['a', 'b'] for col in target_cols: df[col] = df[col].apply(lambda x: x + 1 if x != 1 and x % 2 == 1 else x) # 查看结果 print(df)
方式2:矢量化操作(适合大数据量,性能更高)
不需要循环遍历,直接批量处理:
# 承接上面的df和target_cols定义 mask = (df[target_cols] != 1) & (df[target_cols] % 2 == 1) df[target_cols] = df[target_cols].mask(mask, df[target_cols] + 1)
输出结果验证
两种方式最终得到的df都和你期望的结果一致:
site a b c 0 bali 6 4 1 1 mali 8 20 1
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

