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

如何对两个DataFrame复用标准化处理代码?避免重复编写

处理多个DataFrame的复用方案

你可以把标准化步骤封装成一个可复用的函数,再通过循环批量处理这两个DataFrame,具体实现如下:

步骤1:封装处理函数

把重复的标准化逻辑写成一个函数,接收DataFrame作为参数,返回处理后的结果:

import pandas as pd
import numpy as np

def process_df(df):
    # 执行标准化步骤
    df = df.fillna(method='ffill')
    df = df.fillna('0')
    df = df.T
    df.index.name = 'Sector'
    df = df.round(0).astype(int)
    df = df.sort_index(axis=1)
    
    df.columns = pd.to_datetime(df.columns)
    # 若后续无需使用list_month变量,可直接删除该行
    list_month = np.array(pd.DatetimeIndex(df.columns).month)
    df.columns = pd.Series(df.columns).apply(lambda x: x.strftime('%b %Y')).tolist()
    return df

步骤2:批量处理DataFrame

方式一:列表循环(适合少量DataFrame)

把两个DataFrame放入列表,遍历处理后重新赋值:

# 待处理DataFrame存入列表
dfs = [Df1, Df2]
# 批量应用处理函数
processed_dfs = [process_df(df) for df in dfs]
# 重新赋值给原变量
Df1, Df2 = processed_dfs

方式二:字典管理(适合后续扩展更多DataFrame)

如果之后需要处理更多同结构的DataFrame,用字典管理更清晰:

# 用字典存储待处理的DataFrame
df_dict = {'df1': Df1, 'df2': Df2}
# 遍历字典完成批量处理
for name, df in df_dict.items():
    df_dict[name] = process_df(df)
# 提取处理后的结果
Df1 = df_dict['df1']
Df2 = df_dict['df2']

这样既避免了重复代码,后续维护或扩展处理对象也更便捷。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:02:55