You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Pandas DataFrame指定列批量应用numpy.round()函数?

Pandas批量对指定列应用numpy.round()的简便方法

假设你有如下Pandas DataFrame:

import pandas as pd
import numpy as np
dat = pd.DataFrame({'X1': ['aa'], 'X2': [2.3], 'X3': [23.56]})

如果需要批量对指定列应用numpy.round(),不用逐列手动操作,有以下几种高效方法:

1. 直接对列子集应用numpy.round()

先定义需要处理的目标列列表,然后直接用numpy.round()作用于选中的列子集,这是最简洁高效的方式:

# 定义目标列
target_cols = ['X2', 'X3']
# 批量应用round函数,保留2位小数
dat[target_cols] = np.round(dat[target_cols], 2)

numpy的向量化操作可以直接处理Pandas的列子集,性能优异,适合处理数百列的场景。

2. 使用DataFrame.apply()方法

也可以用apply()方法批量处理目标列,两种写法都可行:

target_cols = ['X2', 'X3']
# 写法1:lambda表达式
dat[target_cols] = dat[target_cols].apply(lambda col: np.round(col, 2))
# 写法2:指定args参数传递小数位数
dat[target_cols] = dat[target_cols].apply(np.round, args=(2,))

3. 按列名模式自动筛选目标列

如果目标列的名称有规律(比如都以X开头后接数字),可以用filter()自动筛选列,不用手动列出来:

# 筛选列名匹配"X+数字"模式的列
target_cols = dat.filter(regex='^X\d+$').columns
dat[target_cols] = np.round(dat[target_cols], 2)

内容的提问来源于stack exchange,提问作者Brian19931

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 05:28:15