成都网站设计是什么,消防电气火灾监控系统网站开发,网页设计与制作教程第二版答案,如何创立一个网站Python CSV 数据分析#xff1a;问题排查与解决全记录
前段时间#xff0c;我接到一个任务#xff0c;需要对公司的销售数据进行分析。这些数据存储在 CSV 文件里#xff0c;本想着用 Python 处理起来会很轻松#xff0c;结果却状况百出。下面#xff0c;就跟大家讲讲我…Python CSV 数据分析问题排查与解决全记录
前段时间我接到一个任务需要对公司的销售数据进行分析。这些数据存储在 CSV 文件里本想着用 Python 处理起来会很轻松结果却状况百出。下面就跟大家讲讲我是如何一步步解决这些问题的。
数据读取时的编码问题
我打算用pandas库来处理 CSV 文件代码如下
import pandas as pdtry:data pd.read_csv(sales_data.csv)
except FileNotFoundError:print(文件不存在)
except UnicodeDecodeError:print(编码错误)
运行代码后程序报错UnicodeDecodeError。我意识到可能是 CSV 文件的编码格式有问题。CSV 文件常用的编码格式有utf - 8、gbk等。我通过查阅资料得知pandas默认以utf - 8编码读取文件。于是我猜测文件可能是gbk编码修改代码如下
import pandas as pdtry:data pd.read_csv(sales_data.csv)
except FileNotFoundError:print(文件不存在)
except UnicodeDecodeError:print(编码错误)
这次成功读取了数据。
数据清洗时的异常值问题
读取数据后我查看数据概况发现 “销售额” 这一列存在一些异常值比如负数。我需要将这些异常值筛选出来并处理掉代码如下
import pandas as pddata pd.read_csv(sales_data.csv, encodinggbk)
invalid_data data[data[销售额] 0]
print(invalid_data)
运行代码能看到具体的异常数据。为了修正这些数据我跟业务部门沟通后得知这些负数是录入错误导致的应该为 0。于是我修改代码进行数据修正
import pandas as pddata pd.read_csv(sales_data.csv, encodinggbk)
data[销售额] data[销售额].apply(lambda x: 0 if x 0 else x)
数据分组统计时的类型问题
接下来我想按 “销售地区” 对销售额进行分组统计代码如下
import pandas as pddata pd.read_csv(sales_data.csv, encodinggbk)
data[销售额] data[销售额].apply(lambda x: 0 if x 0 else x)
grouped data.groupby(销售地区)[销售额].sum()
print(grouped)
结果运行后发现统计结果不对。经过排查我发现 “销售地区” 这一列的数据类型是浮点数而不是字符串这导致分组统计出现错误。我通过以下代码修正数据类型
import pandas as pddata pd.read_csv(sales_data.csv, encodinggbk)
data[销售额] data[销售额].apply(lambda x: 0 if x 0 else x)
data[销售地区] data[销售地区].astype(str)
grouped data.groupby(销售地区)[销售额].sum()
print(grouped)
这次成功得到了正确的统计结果。
通过这次项目我深切体会到在数据分析过程中遇到问题不可怕只要掌握正确的排查方法不断尝试就能顺利解决问题完成任务。