def analyze_data_changes(data, previous_data, tj_config, categore_type):
    '''
    分析数据变化,计算重复数量、增量和丢弃数量,并将结果记录到字符串中。

    Args:
        data (pd.DataFrame): 当前数据,DataFrame格式。
        previous_data (pd.DataFrame): 之前的数据,DataFrame格式。
        tj_config (str): 天机配置名称。
        categore_type (str): 数据类别。

    Returns:
        str: 记录数据变化信息的字符串。
    '''
    
    columns = ['category', 'value', 'score']
    
    now_data = TianJiIocs.pickUpDataColumns(data, columns)
    previous_data = TianJiIocs.pickUpDataColumns(previous_data, columns)
    
    record_txt = ''
    record_txt += f'{tj_config}--{categore_type}类型-重复数量{len(TianJiIocs.repeatData(now_data, previous_data, 'value'))}' + '\n'
    
    Increment_tmpData = TianJiIocs.incrementData(now_data, previous_data, 'value', now_day)
    if Increment_tmpData is not None:
        record_txt += f'{tj_config}--{categore_type}类型-增量:{len(Increment_tmpData)}' + '\n'
        df_Increment = pd.concat([Increment_tmpData, df_Increment], ignore_index=True)
    else:
        record_txt += f'{tj_config}--{categore_type}类型-增量:0' + '\n'
    
    lose_tmpData = TianJiIocs.loseData(previous_data, now_data, 'value', now_day)
    if lose_tmpData is not None:
        record_txt += f'{tj_config}--{categore_type}类型-丢弃:{len(lose_tmpData)}' + '\n'
        df_lose = pd.concat([lose_tmpData, df_lose], ignore_index=True)
    else:
        record_txt += f'{tj_config}--{categore_type}类型-丢弃:0' + '\n'
    
    return record_txt


def optimize_code(tj_config, categore_type, save_path, save_categorefile):
    previous_name = tj_config + '_' + categore_type + '_'
    previous_file = TianJiIocs.get_previousFile(save_path, save_categorefile, previous_name)
    previous_data = TianJiIocs.pickUpDataColumns(pd.read_csv(previous_file), ['category', 'value', 'score'])
    
    return analyze_data_changes(categore_type_data, previous_data, tj_config, categore_type)

这段代码将原代码中重复的逻辑封装进了 analyze_data_changes 函数中,并减少了 optimize_code 函数的参数数量,提高了代码的可读性和可维护性。同时,添加了函数注释,更清晰地描述函数的功能和参数含义。

Python代码优化:减少函数参数并提高可读性

原文地址: https://www.cveoy.top/t/topic/eZk3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录