如何修改Pandas自定义函数,将输出存储到变量或Series中?
修改后的Main_Function函数(存储结果到Pandas Series)
原函数仅打印判断结果,以下是修改后的版本,将结果收集并返回为Pandas Series(也可按需调整为DataFrame):
import pandas as pd def Main_Function(df, table_of_limits): results = [] for i in range(len(df)): row_results = [] for j in range(len(table_of_limits)): value = df.loc[i][j+2] a = table_of_limits.iloc[j]['a'] b = table_of_limits.iloc[j]['b'] c = table_of_limits.iloc[j]['c'] d = table_of_limits.iloc[j]['d'] if a < value < b: row_results.append('OK') elif c < value < d: row_results.append('Warning') else: row_results.append('Not_ok') results.append(row_results) # 扁平化结果并转换为Series flat_results = [item for sublist in results for item in sublist] return pd.Series(flat_results)
关键改动说明
- 用列表
results替代print语句,逐行逐列收集判断结果 - 提取变量简化逻辑判断,提升代码可读性
- 将收集到的二维结果扁平化,转换为Pandas Series返回(若需要保留行列对应关系,可改用
pd.DataFrame(results)返回)
使用示例
调用函数后将结果存储到变量:
# 假设df和table_of_limits为已初始化的DataFrame judgment_results = Main_Function(df, table_of_limits) # 查看结果 print(judgment_results)
内容的提问来源于stack exchange,提问作者Ali Tavallaee
相关产品推荐
相关产品推荐

