如何将Python Pandas生成的图表保存为与CSV文件同名的文件?
解决方法
- 先修正原代码中的语法错误:
- 将
df.'columnname'改为df['columnname'] - 将
value_counts.(normalize=True)改为value_counts(normalize=True)
- 将
- 引入
os模块处理文件路径,自动提取CSV的目录和基础文件名,实现通用的保存逻辑 - 导入
matplotlib.pyplot调用图表保存方法
完整代码示例:
import pandas as pd import os import matplotlib.pyplot as plt # 定义CSV文件路径 csv_path = "C:/Users/xyz/Desktop/carsdataset.csv" # 拆分路径,获取文件所在目录和带后缀的文件名 dir_path, full_filename = os.path.split(csv_path) # 提取不带后缀的基础文件名 file_base_name = os.path.splitext(full_filename)[0] # 读取CSV数据 df = pd.read_csv(csv_path) # 生成统计数据与水平柱状图 X = df['columnname'].value_counts(normalize=True) X.plot.barh() # 拼接图表保存路径(与CSV同目录,同名,后缀改为png) save_path = os.path.join(dir_path, f"{file_base_name}.png") # 保存图表,bbox_inches='tight'避免内容被截断 plt.savefig(save_path, bbox_inches='tight') # 关闭图表释放资源 plt.close()
关键细节说明
os.path.split()拆分路径,分离出文件所在目录和完整文件名os.path.splitext()移除文件名的后缀,得到纯名称(如carsdataset)os.path.join()拼接保存路径,避免手动拼接路径引发的系统兼容性问题plt.savefig()是matplotlib的核心保存方法,适配Pandas生成的所有图表类型
内容的提问来源于stack exchange,提问作者Beast
相关产品推荐
相关产品推荐

