如何从同时返回DataFrame和matplotlib绘图的函数中单独提取DataFrame?
步骤1:修正并优化函数
首先补充遗漏的numpy导入,同时添加plt.show()确保绘图在返回前完成渲染,新增参数控制是否展示DataFrame:
import pandas as pd import matplotlib.pyplot as plt import numpy as np def function(n, show_df: bool = True): df = pd.DataFrame(columns=['a','b','c']) df['a'] = np.random.randn(n) df['b'] = np.random.randn(n)*2 df['c'] = np.random.randn(n)*3 # 绘图逻辑 plt.plot(df.a, color='red') plt.plot(df.b, color='green') plt.plot(df.c, color='blue') plt.show() # 控制是否在单元格输出展示DataFrame if show_df: display(df) return df
步骤2:调用方法
# 将返回的DataFrame赋值给变量,绘图会自动输出,DataFrame也会按设置展示 result_df = function(100) # 变量result_df可以直接作为参数传给其他函数使用,示例: # other_function(result_df)
常见误区说明
- 为什么
function(100)[0]无效?你的函数返回的是单个DataFrame对象,并非多元素的序列结构,[0]是尝试读取DataFrame的第0列,完全不符合你的取值预期。 - 为什么return放在绘图代码前不出图?Python函数执行到
return语句就会直接终止运行,后续的绘图代码根本不会被执行,自然没有图像输出。
内容的提问来源于stack exchange,提问作者NKL
相关产品推荐
相关产品推荐

