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

如何优雅地对Pandas DataFrame中float64类型元素统一除以100?

优雅实现Pandas DataFrame中float64列全局除以100

刚好遇到过类似需求,这里有两种简洁高效的实现方式,完全不用手动指定目标列,自动识别所有float64类型列完成除法:

方法一:一行代码快速实现(适合小数据集)

利用apply遍历每一列,判断类型后执行运算,代码简洁直观:

import pandas as pd

# 假设你的DataFrame名为df
df = df.apply(lambda col: col / 100 if col.dtype == 'float64' else col)

方法二:高效向量运算(推荐大数据集)

先通过select_dtypes精准筛选出所有float64列,再直接对这些列做向量运算——Pandas的向量运算比逐列apply效率高得多,处理大表时优势明显:

# 筛选所有float64类型的列
float_columns = df.select_dtypes(include=['float64']).columns
# 对目标列执行除法
df[float_columns] = df[float_columns] / 100

实际测试示例

我们用一个混合类型的DataFrame验证效果:

# 创建测试数据
test_data = {
    'float_col1': [200.0, 400.0, 600.0],
    'int_col': [1, 2, 3],
    'str_col': ['apple', 'banana', 'cherry'],
    'float_col2': [150.5, 320.8, 570.3]
}
df = pd.DataFrame(test_data)

# 使用方法二处理
float_cols = df.select_dtypes(include=['float64']).columns
df[float_cols] = df[float_cols] / 100

print(df)

输出结果:

float_col1  int_col   str_col  float_col2
0         2.0        1     apple        1.505
1         4.0        2    banana        3.208
2         6.0        3    cherry        5.703

可以看到只有float_col1和float_col2这两个float64列被除以100,其他类型的列完全不受影响,完美匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:05:13