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

Pandas DataFrame列重命名返回None问题及重命名+向上取整需求

需求2:实现数值列向上取整 + 批量重命名所有列

我们可以分两步完成这个需求,先处理数值列的向上取整,再批量重命名列,下面是完整的实现代码和说明:

步骤1:筛选数值列并向上取整

先用select_dtypes筛选出所有数值类型的列(int、float等),再用numpy的ceil函数对这些列的值做向上取整:

import pandas as pd
import numpy as np

# 示例数据
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'score1': [85.2, 90.7, 78.4],
    'score2': [76.5, 88.1, 92.9],
    'age': [22, 25, 23]
})

# 筛选数值类型的列
numeric_cols = df.select_dtypes(include=['int64', 'float64']).columns

# 对数值列执行向上取整
df[numeric_cols] = np.ceil(df[numeric_cols])

步骤2:批量重命名所有列

批量重命名可以用df.rename()方法,传入函数或字典来定义规则,这里给两个常见的实用例子:

例子1:给所有列加前缀

# 给每个列名加上"processed_"前缀
df = df.rename(columns=lambda x: f'processed_{x}')

例子2:把所有列名转成大写

# 批量将列名转为大写
df = df.rename(columns=str.upper)

整合后的可复用函数

把两步封装成函数,方便后续调用:

import pandas as pd
import numpy as np

def process_dataframe(df, rename_rule=None):
    # 第一步:数值列向上取整
    numeric_cols = df.select_dtypes(include=['int64', 'float64']).columns
    df[numeric_cols] = np.ceil(df[numeric_cols])
    
    # 第二步:批量重命名列,默认加前缀
    if rename_rule is None:
        df = df.rename(columns=lambda x: f'processed_{x}')
    else:
        df = df.rename(columns=rename_rule)
    
    return df

# 测试函数
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'score1': [85.2, 90.7, 78.4],
    'score2': [76.5, 88.1, 92.9],
    'age': [22, 25, 23]
})

processed_df = process_dataframe(df)
print(processed_df)

运行后你会得到数值列全部向上取整、且列名带processed_前缀的DataFrame。如果需要自定义重命名规则,只需要给rename_rule传一个函数或字典即可,比如rename_rule=str.lower就能把列名改成小写。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:43:11