news 2026/10/30 10:50:38

亚马逊知识点与python结合(二)读取 CSV → 检查数据 → 找出问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
亚马逊知识点与python结合(二)读取 CSV → 检查数据 → 找出问题

今天的目标是:读取 CSV → 检查数据 → 找出问题 → 为后续分析做准备。

读取 CSV 文件,并检查数据结构。
检查数据类型、缺失值和重复行。
区分计算用数值与展示用文本。
处理 ACOS 中的 inf 异常值。
根据花费和订单数筛选问题关键词。
将分析结果导出为 CSV,供后续查看和处理。


第一步:读取昨天导出的 CSV 文件

importpandasaspd df_check=pd.read_csv("problem_keywords.csv")df_check


第二步:检查数据有多少行、多少列

df_check.shape

收到亚马逊广告报表时,先确认数据规模,可以快速判断文件是否完整,避免误把只有一行的异常清单当成整份报表。


第三步:检查每一列的数据类型

df_check.info()

  • Clicks、Spends、Orders、Sales 是整数类型 int64,可以参与计算。
  • Keyword 是文本,正常。
  • ACOS 和 CVR 是字符串 str,不是数值。这是因为昨天我们把它们格式化成了 “No Sales”、“12.5%” 这样的文本。
  • 比如,“12.5%” 看起来是数字,但 Python 不会直接把它当成 0.125 来计算。

df_check.info()会告诉你每一列的数据类型、非空值数量,以及整体内存使用情况。
例如,点击量和花费通常应该是数值类型,而关键词通常是文本类型。数据类型不正确时,后续计算就可能出错。


第四步:检查缺失值

df_check.isnull().sum()

逐列统计缺失值的数量。比如 Keyword 0 表示关键词列没有缺失值。
说明 df_check 的 7 列都没有缺失值。

不过提醒一下:没有缺失值,不等于数据一定正确。比如 ACOS 被存成文本,也可能是需要处理的数据问题。


第五步:检查有没有重复行

df_check.duplicated().sum()

统计完全重复的行数:

  • 0:没有完全重复的行。
  • 1 或更大:存在重复行,需要进一步判断是否应该删除。

第六步:检查数据是否合理

在真实广告报表中,除了检查缺失值和重复行,还要检查数值是否异常。

df_check[["Clicks","Spends","Orders","Sales"]].describe()

显示这四列的统计信息,包括:

  • min:最小值
  • max:最大值
  • mean:平均值
  • count:数据行数

检查的是昨天导出的 problem_keywords.csv,它只有 1 行、7 列,不是完整的广告报表。所以 describe() 中的 std 显示 NaN 是正常的——只有一条记录,无法计算样本标准差。

另外,我们也确认了昨天的 CSV 把 ACOS 和 CVR 保存成了文本。真实分析时,如果后续还要计算,就应该保留数值列,需要展示时再格式化。


检查 ACOS 列的数据类型

df["ACOS"].dtype

现在 ACOS 是文本,因为我们之前把它格式化成了 “12.5%”、“No Sales” 这样的展示形式。
这里有个真实工作中很重要的习惯:计算用的数据和展示用的数据,最好分开保存。


重新计算数值型 ACOS

df["ACOS_Raw"]=df["Spends"]/df["Sales"]df[["Keyword","Spends","Sales","ACOS_Raw"]]


处理 inf

importnumpyasnp df["ACOS_Raw"]=df["ACOS_Raw"].replace([np.inf,-np.inf],np.nan)df[["Keyword","Sales","ACOS_Raw"]]

无穷大替换为 NaN,表示「当前没有有效的 ACOS 数值」。
注意:没有销售额不代表 ACOS 为 0%,而是 ACOS 无法计算。


筛选问题关键词

problem_keywords=df[(df["Spends"]>40)&(df["Orders"]==0)]problem_keywords[["Keyword","Spends","Orders","ACOS_Raw"]]

找到 cheap summer jacket 这条关键词,花费为 $60,订单数为 0。

  • df["Spends"] > 40:花费超过 $40。
  • df["Orders"] == 0:订单数为零。
  • &:两个条件必须同时满足,才会被筛选出来。

第 5 步:保存分析结果

最后一步,把筛选出的关键词保存成 CSV 文件,方便以后用 Excel 打开,或者发给同事检查。

problem_keywords.to_csv("problem_keywords_checked.csv",index=False,encoding="utf-8-sig")

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 10:49:53

轻量级对话系统意图路由实战:用可解释地图替代if-else

1. 项目起底:lingbot-map 到底在解决什么问题 lingbot-map 这个项目,起源其实很朴素:我一直在维护一个自托管的对话机器人,为了让它能处理新人提问、工单转接、日常闲聊这些需求,最初的方案是在入口处挂一堆 if-else&a…

作者头像 李华
网站建设 2026/10/30 10:50:37

职业转型的底层逻辑与实战策略

1. 项目背景与核心价值"上岸"这个概念在当代职场语境中已经超越了字面意义,成为职场人突破发展瓶颈的代名词。我接触过上百位处于职业转型期的咨询者,发现大多数人陷入了一个认知误区——把"上岸"简单等同于跳槽加薪或考编成功。实际…

作者头像 李华
网站建设 2026/10/18 7:41:31

AI编程时代初级程序员避坑指南:从提问到验证的实操方法

最近跟几个团队的技术负责人交流,聊到 AI 编程时代这个话题,大家口径出奇一致:工具越好用,初级程序员的产出差距反而被拉得越大。有人靠 AI 一天顶过去三天,有人拿着 AI 生成的三百行代码跑不起来,改了两天…

作者头像 李华
网站建设 2026/10/18 12:08:51

架构经济学:技术决策背后的成本收益分析

1. 架构经济学的本质思考架构从来不是单纯的技术问题。当我们在深夜review代码时,当我们在白板前画框图时,当我们在会议室争论技术方案时,表面上看是在解决技术实现问题,实际上我们无时无刻不在进行着经济决策。架构经济学研究的是…

作者头像 李华
网站建设 2026/10/23 6:03:16

高效学习管理系统:双编码时间记录法实践

1. 项目背景与核心价值这个看似简单的标题"0x3f 第40天 复习 9:58-10:52"实际上蕴含着一套完整的学习管理系统设计理念。作为一名经历过无数次备考和技能提升的老手,我深知科学的时间记录和复习规划对学习效率的颠覆性影响。这种编码方式采用了"十六…

作者头像 李华