Python CSV 数据分析:问题排查与解决全记录

Python CSV 数据分析:问题排查与解决全记录

前段时间,我接到一个任务,需要对公司的销售数据进行分析。这些数据存储在 CSV 文件里,本想着用 Python 处理起来会很轻松,结果却状况百出。下面,就跟大家讲讲我是如何一步步解决这些问题的。

数据读取时的编码问题

我打算用pandas库来处理 CSV 文件,代码如下:

python 复制代码
import pandas as pd

try:
    data = pd.read_csv('sales_data.csv')
except FileNotFoundError:
    print("文件不存在")
except UnicodeDecodeError:
    print("编码错误")

运行代码后,程序报错UnicodeDecodeError。我意识到,可能是 CSV 文件的编码格式有问题。CSV 文件常用的编码格式有utf - 8、gbk等。我通过查阅资料得知,pandas默认以utf - 8编码读取文件。于是,我猜测文件可能是gbk编码,修改代码如下:

python 复制代码
import pandas as pd

try:
    data = pd.read_csv('sales_data.csv')
except FileNotFoundError:
    print("文件不存在")
except UnicodeDecodeError:
    print("编码错误")

这次,成功读取了数据。

数据清洗时的异常值问题

读取数据后,我查看数据概况,发现 "销售额" 这一列存在一些异常值,比如负数。我需要将这些异常值筛选出来并处理掉,代码如下:

python 复制代码
import pandas as pd

data = pd.read_csv('sales_data.csv', encoding='gbk')
invalid_data = data[data['销售额'] < 0]
print(invalid_data)

运行代码,能看到具体的异常数据。为了修正这些数据,我跟业务部门沟通后得知,这些负数是录入错误导致的,应该为 0。于是,我修改代码进行数据修正:

python 复制代码
import pandas as pd

data = pd.read_csv('sales_data.csv', encoding='gbk')
data['销售额'] = data['销售额'].apply(lambda x: 0 if x < 0 else x)

数据分组统计时的类型问题

接下来,我想按 "销售地区" 对销售额进行分组统计,代码如下:

python 复制代码
import pandas as pd

data = pd.read_csv('sales_data.csv', encoding='gbk')
data['销售额'] = data['销售额'].apply(lambda x: 0 if x < 0 else x)
grouped = data.groupby('销售地区')['销售额'].sum()
print(grouped)

结果运行后,发现统计结果不对。经过排查,我发现 "销售地区" 这一列的数据类型是浮点数,而不是字符串,这导致分组统计出现错误。我通过以下代码修正数据类型:

python 复制代码
import pandas as pd

data = pd.read_csv('sales_data.csv', encoding='gbk')
data['销售额'] = data['销售额'].apply(lambda x: 0 if x < 0 else x)
data['销售地区'] = data['销售地区'].astype(str)
grouped = data.groupby('销售地区')['销售额'].sum()
print(grouped)

这次,成功得到了正确的统计结果。

通过这次项目,我深切体会到,在数据分析过程中,遇到问题不可怕,只要掌握正确的排查方法,不断尝试,就能顺利解决问题,完成任务。

相关推荐
青瓷程序设计10 分钟前
【交通标志识别系统】python+深度学习+算法模型+Resnet算法+人工智能+2026计算机毕设项目
人工智能·python·深度学习
Mr.huang11 分钟前
RNN系列模型演进及其解决的问题
人工智能·rnn·lstm
智驱力人工智能16 分钟前
货车走快车道检测 高速公路安全治理的工程实践与价值闭环 高速公路货车占用小客车道抓拍系统 城市快速路货车违规占道AI识别
人工智能·opencv·算法·安全·yolo·目标检测·边缘计算
老百姓懂点AI20 分钟前
[RAG架构] 拒绝向量检索幻觉:智能体来了(西南总部)AI agent指挥官的GraphRAG实战与AI调度官的混合索引策略
人工智能·架构
ws20190721 分钟前
技术迭代与湾区赋能:AUTO TECH China 2026广州汽车零部件展的四大核心价值
人工智能·科技·汽车
啥都想学点25 分钟前
关于制作技术视频讲解的问卷调查
python
喵手25 分钟前
Python爬虫实战:博物馆官网的“展览预告/正在热展”栏目,抓取展览名称、精确展期、具体展厅位置以及票务/预约规则(附CSV导出)!
爬虫·python·爬虫实战·零基础python爬虫教学·博物馆信息采集·采集展览预告/正在热展等·采集数据csv导出
喵手26 分钟前
Python爬虫实战:电商实体消歧完整实战 - 从混乱店铺名到标准化知识库的工程化实现,一文带你搞定!
爬虫·python·算法·爬虫实战·零基础python爬虫教学·同名实体消除·从混乱店铺名到标准化知识库
源于花海27 分钟前
迁移学习简明手册——迁移学习相关资源汇总
人工智能·机器学习·迁移学习
aihuangwu30 分钟前
deepseek图表怎么导出
人工智能·ai·deepseek·ds随心转