pandas表格处理

使用背景

当我们使用爬虫获取到网页内容时通常会将数据保存的文件中,最好的选择就是excel文件。但是如此庞大的数据总不能挨个录入,费时费力。接下来就不得不介绍一个强力的工具 pandas

介绍pandas

pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

一. 准备工作

首先,需要安装pandas和openpyxl(用于读写.xlsx文件)库。如果你还没有安装,可以通过pip来安装

pip install pandas
pip install openpyxl

python库安装好了,现在需要的就是数据,我们模拟一段爬虫数据

data_list = [  
    {  
        "id": 1,  
        "name": "苹果iPhone 13",  
        "price": 999.99,  
        "description": "全新iPhone 13,搭载A15芯片,支持5G网络,带来更快更流畅的体验。",  
        "category": "手机",  
        "brand": "Apple",  
        "images": [  
            "https://example.com/iphone13-1.jpg",  
            "https://example.com/iphone13-2.jpg"  
        ],    
    },  
    {  
        "id": 2,  
        "name": "三星Galaxy S21",  
        "price": 799.99,  
        "description": "三星Galaxy S21,搭载Exynos 2100芯片,支持5G网络,拥有出色的拍照和显示效果。",  
        "category": "手机",  
        "brand": "Samsung",  
        "images": [  
            "https://example.com/s21-1.jpg",  
            "https://example.com/s21-2.jpg"  
        ],  
    },  
    {  
        "id": 3,  
        "name": "华为MateBook 14",  
        "price": 1299.99,  
        "description": "华为MateBook 14,轻薄便携,搭载第11代智能英特尔酷睿处理器,性能强劲。",  
        "category": "笔记本电脑",  
        "brand": "Huawei",  
        "images": [  
            "https://example.com/matebook14-1.jpg",  
            "https://example.com/matebook14-2.jpg"  
        ],  
    }  
]

二. 将以上数据存入excel文件

这里分为三步

  • 第一步:导入pandas库,as 表示重命名 ,可以起一个更好写的名字,这里重命名为 pd
import pandas as pd
  • 第二步:我们需要先将python数据转为DataFrame对象,并用变量 df 接收。这里传入的data_list 就是上面的模拟数据
df = pd.DataFrame(data_list)
  • 第三步:保存为excel文件,products.xlsx 就是保存的文件名,这里只需要写文件名就会自动创建文件。index=False 就表示不要每条数据前面的序号
df.to_excel("products.xlsx",index=False)
  • 以上三步执行完成之后就会在我们的文件列表生成一个excel文件,并且已经将数据录取到文件中。这里只模拟了三条数据,看起来和手动输入没有差别,但是在真正处理数据时,会有成千上万条。此时的差距就显而易见了
    在这里插入图片描述
  • 完整代码
# 引入库
import pandas as pd

# 数据列表
data_list = [  
    {  
        "id": 1,  
        "name": "苹果iPhone 13",  
        "price": 999.99,  
        "description": "全新iPhone 13,搭载A15芯片,支持5G网络,带来更快更流畅的体验。",  
        "category": "手机",  
        "brand": "Apple",  
        "images": [  
            "https://example.com/iphone13-1.jpg",  
            "https://example.com/iphone13-2.jpg"  
        ],    
    },  
    {  
        "id": 2,  
        "name": "三星Galaxy S21",  
        "price": 799.99,  
        "description": "三星Galaxy S21,搭载Exynos 2100芯片,支持5G网络,拥有出色的拍照和显示效果。",  
        "category": "手机",  
        "brand": "Samsung",  
        "images": [  
            "https://example.com/s21-1.jpg",  
            "https://example.com/s21-2.jpg"  
        ],  
    },  
    {  
        "id": 3,  
        "name": "华为MateBook 14",  
        "price": 1299.99,  
        "description": "华为MateBook 14,轻薄便携,搭载第11代智能英特尔酷睿处理器,性能强劲。",  
        "category": "笔记本电脑",  
        "brand": "Huawei",  
        "images": [  
            "https://example.com/matebook14-1.jpg",  
            "https://example.com/matebook14-2.jpg"  
        ],  
    }  
]

# 将数据列表转换为DataFrame
df = pd.DataFrame(data_list)

# 保存为excel文件
df.to_excel("products.xlsx",index=False)


三. 有了录入数据自然就有读取文件数据 与 增,删,改,查

读取数据

  • 从新创建一个python文件 ,同样的引入pandas库
  • 使用 read_excel 函数读取Excel文件,里面填写两个参数,第一个文件路径(Excel文件路径),第二个表名(一个Excel文件或许存在多个表,要写清楚读取的 那个表)
    在这里插入图片描述
import pandas as pd

# 读取Excel文件  
df = pd.read_excel('products.xlsx',sheet_name='Sheet1')
print(df)
  • 这里打印出来的数据就格式也类似Excel里的格式,但它是可操作的在这里插入图片描述

添加数据

  • 首先读取excel表格数据,也就是上面的步骤
  • 准备好要添加的数据,列表里可以存在多个字典,字典里的key值需要和Excel表格的列名对应起来,然后将数据转为DataFrame
# 模拟数据
new_data = [{
	    "id": 4, 
	    "name": "菠萝18手机", 
	    "price": 99999, 
	    "description": "全新菠萝18手机", 
	    "category": "手机", 
	    "brand": "boluo",
	    "images":["https://example.com/images/boluo-1.jpg","https://example.com/images/boluo-2.jpg"]
	    }]
# # 将数据转化为DataFrame
new_data = pd.DataFrame(new_data)
  • 添加数据 使用 _append 函数 ,new_data 是新数据 , ignore_index 表示忽略索引 ,最后保存新数据到Excel文件
# 将新数据添加到DataFrame中 ignore_index 表示忽略索引
df = df._append(new_data, ignore_index=True)

# 将DataFrame保存回Excel文件
df.to_excel('products.xlsx', index=False)

在这里插入图片描述

删除数据

  • 首先读取excel表格数据,也就是上面的步骤
  • 使用 drop函数 ,接收要删除的数据索引, df[df[‘id’] == 1].index 会返回 id那一列值为4的 索引值 ,也可以直接写 行索引
  • id的位置可以写其他列名 , == 后面的值 是判断条件
  • 最后保存回原文件
df = df.drop(df[df['id'] == 1].index)
# 保存回Excel文件
df.to_excel('products.xlsx', index=False)

在这里插入图片描述

修改数据

  • 首先读取excel表格数据,也就是上面的步骤
  • .at[行索引, 列名],根据行和列即可确定单元格,= 后面写需要更改的值。
  • 此方法也可用于给空白单元格添加内容
  • 最后保存回Excel文件
# 修改数据
df.at[1, 'name'] = '菠萝19手机'
# 保存回Excel文件
# df.to_excel('products.xlsx', index=False)

在这里插入图片描述

查询数据

  • 首先读取excel表格数据,也就是上面的步骤
  • .loc[读取到的数据[“列名”] ==“此列中存在的值”] , 下面的意思就是查找 category 这一列中 值为手机的数据
  • 把查找到的数据有变量接收,最后打印
s = df.loc[df['category'] == '手机']
print(s)

在这里插入图片描述

完整代码

  • 这里将 增 删 改 查 写到一个文件中,所以读取文件和写入文件只再开始和结尾进行,建议每个操作都重新创建python文件
import pandas as pd

# 读取Excel文件
df = pd.read_excel('products.xlsx',sheet_name='Sheet1')


# 添加数据到excel文件中
new_data = [{
    "id": 4, 
    "name": "菠萝18手机", 
    "price": 99999, 
    "description": "全新菠萝18手机", 
    "category": "手机", 
    "brand": "boluo",
    "images":["https://example.com/images/boluo-1.jpg","https://example.com/images/boluo-2.jpg"]
    }]

# 将数据转化为DataFrame
new_data = pd.DataFrame(new_data)

# 将新数据添加到DataFrame中 ignore_index 表示忽略索引
df = df._append(new_data, ignore_index=True)


# 删除数据
df = df.drop(df[df['id'] == 1].index)


# 修改数据
df.at[1, 'name'] = '菠萝19手机'

# 查询数据
s = df.loc[df['category'] == '手机']
print(s)

# 保存Excel文件
df.to_excel('products.xlsx', index=False)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值