Web Scraper抓取+pycharm分析淘宝商品
axiu呀 2024-07-16 14:03:02 阅读 63
1、爬取淘宝商品前十页
下载的文件存放位置
2、导入项目编程需要使用到的Python库
copy: 用于创建对象的浅复制或深复制
matplotlib 和 matplotlib.pyplot: 这两个库是Python中最常用的绘图库,用于生成各种静态、动态、交互式的图表和图形。
numpy: 提供了强大的多维数组对象和数学函数库
pandas: 强大的数据处理和分析工具,基于 numpy 构建,可以方便地处理结构化数据,如CSV或Excel文件中的表格数据。
matplotlib.font_manager.FontProperties: 用于设置matplotlib中字体属性的类,比如字体大小、样式等
re: Python的标准库,提供正则表达式匹配操作
seaborn: 基于matplotlib的数据可视化库,提供了更高级、更美观的统计图形绘制功能,适合做数据分布的视觉展示。
jieba: 中文分词库,用于对中文文本进行词语切分,是处理中文文本数据的重要工具。
jieba.analyse.extract_tags: jieba库中的一个功能,用于提取文本中的关键词,常用于文本主题分析。
WordCloud: 用于生成词云的库,可以帮助可视化文本数据中单词的频率。
3、设置字体
4、导入数据集
df = pd.read_csv("taobao.csv", encoding='utf-8')
使用了Pandas库来读取一个名为"taobao.csv"的CSV文件,并指定文件的字符编码为'utf-8'。
5、数据概述
(1)查看数据前十行
print(df.head(10))是一个Pandas命令,用于显示DataFrame对象df的前10行数据。输出一个表格形式的结果,展示CSV文件导入后 DataFrame 的初始部分数据。
(2)查看列名
print(df.columns) 这段代码的作用是打印出DataFrame df 所有列的名称
(3)修改列名至表中
new_column_names = ['序号', '商品链接', '标题', '商店名', '卖点1', '卖点2', '价格(元)', '销售', '发货地']
df.rename(columns=dict(zip(df.columns, new_column_names)), inplace=True)
print(df.columns)
df.to_csv('taobao.csv' , index=False)
创建了一个列表new_column_names,里面存放了给DataFrame列重新命名的新列名。
使用df.rename()函数和字典dict(zip(df.columns, new_column_names))来将原DataFrame的列名映射到新的列名上
调用print(df.columns)来打印出修改后的列名,确认列名是否已经成功更新。
使用df.to_csv('taobao.csv', index=False)将修改列名后的DataFrame保存回CSV文件。index=False参数表示在保存时不包含索引列
(4)查看末尾5行的数据
print(df.tail(n=5)):指定要从末尾开始显示的 5 行
(5)查看行数和列数
print(df.shape):打印DataFrame‘df’的形状,即行数和列数
(6)查看所有列名
print(df.columns)这个命令是用来打印DataFrame ‘df’所有列的名称
(7)查看详细结构信息
print(df.info()):会显示出DataFrame的详细结构信息,包括数据框的总览(列名及其数据类型);每一列的非空值数量;数据框所占内存大小;索引的类型和唯一标识数量
(8)查看每列的数据类型
print(df.dtypes) :打印出DataFrame‘df’中每列数据的类型
(9)查看‘商店名’的所有唯一值
print(df['商店名'].unique()) 这行代码的作用是打印出DataFrame df中'商店名'这一列所有不重复的值,显示出该列所有唯一的商店名称。
(10)查看价格从高到低排列
price = df.sort_values(by=['价格(元)'], ascending=False)
print(price)
1、对DataFrame df按照'价格(元)'这一列的值进行降序排序,
2、排序后的新DataFrame被赋值给了变量price。
3、通过print(price)打印出这个按价格降序排列的数据Frame。
(11)创建透视表以多种维度查看数据的不同汇总视图
pivot_table_example = pd.pivot_table(df, values='价格(元)', index='商店名', columns='卖点1', aggfunc="nunique")
print(pivot_table_example)
print(df.columns)
print(pivot_table_example): 这将打印出创建的数据透视表,展示了不同商店的每个卖点对应的不同价格数量。
print(df.columns): 这行代码打印出原始DataFrame df 的所有列名,以便了解数据框架的结构。
(12)查看价格大于500元的行
high_price_items = df[df['价格(元)'] > 500]:从DataFrame df中筛选出“价格(元)”列值大于500的行
print(high_price_items):打印出这些高价商品的信息
6.数据清洗
(1)查看每列非空数据
print(df.count()):打印出DataFrame df中每列非空值的数量。运行这段代码后,显示出一个Series,其中索引是列名,对应的值是各列中非空数据项的数量
(2)检查是否有空值
<
print(df.isnull().sum()):检查DataFrame df中每一列含有多少缺失值(NaN值)。df.isnull()会返回一个布尔值的DataFrame,其中True表示该位置的值是缺失的,False表示有值。紧接着调用.sum()会计算每一列中True的个数,也就是缺失值的数量。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。