Python 实现 excel 数据过滤

一、场景分析

假设有如下一份 excel 数据 shop.xlsx, 写一段 python 程序,实现对于车牌的分组数据过滤。

并以车牌为文件名,把店名输出到 车牌.txt 文件中。

比如 闽A.txt 文件内容为:

小林书店福州店1

小林书店福州店2

二、依赖安装

程序依赖 pandas 对 excel 数据进行处理,所以需要先安装一下 pandas 依赖。

bash 复制代码
pip install pandas

三、代码实现

python 复制代码
import pandas as pd

# pandas 菜鸟教程
# https://www.runoob.com/pandas/pandas-dataframe.html

# 输入文档
input_path = r"C:\Users\Administrator\Desktop\py\excel\filter\shop.xlsx"

# 读取 Excel 文件,将其存储在一个DataFrame对象中
df = pd.read_excel(input_path)
# 行数,注意这个行数是数据行数,标题不算
rows = df.shape[0]
# 最终的数据结果是,{ '闽A':[], '闽B':[], '闽C':[]  }
result = {}

# 根据 车牌号,获取店名
for  i  in range(0, rows):
     # df.loc[ idx, 'Column1'] 
     # idx : 行标,从 0 开始,0 是数据行的第一行,即 excel 的第二行
     carNo = df.loc[i, '车牌']
     print( carNo )
     shopName = df.loc[i, '店名']
     print( shopName )
     # 以 carNo 为 key 从字典中获取值列表,没有返回 None,避免 KeyError
     value_list = result.get(carNo, None)
     if value_list:
          value_list.append(shopName)
     else:
          value_list = []
          value_list.append(shopName)
          result[ carNo ] = value_list

print( result )
# 根据 carNo, 生成 txt, 内容是 店名
# 遍历 key 列表
for key in result.keys():
     value_list = result.get(key)
     output_path = key+'.txt'
     # 以 write 的方式打开输出文件
     with open( output_path, 'w', encoding='utf-8') as file:
            num = len( value_list ) 
            end = num - 1
            for i, item in enumerate(value_list):
                 # 最后一行数据不需要换行
                 if i == end:
                     file.write(item)                         
                 else:
                     file.write(item + '\n')

四、运行

python 复制代码
py shop_filter.py

五、扩展阅读

更多关于 python 操作 excel 的内容可以看我的 博文

相关推荐
知识分享小能手2 分钟前
Java学习教程,从入门到精通,Java 变量命名规则(12)
java·大数据·开发语言·python·学习·java学习·java后端开发
知识分享小能手4 分钟前
Java学习教程,从入门到精通,Java switch语句语法知识点(14)
java·开发语言·python·学习·javaee·大数据开发·java大数据
爱就是恒久忍耐15 分钟前
CANopen中错误帧的制造和观测
网络·python·制造
Elastic 中国社区官方博客29 分钟前
将你的 Kibana Dev Console 请求导出到 Python 和 JavaScript 代码
大数据·开发语言·前端·javascript·python·elasticsearch·ecmascript
声声codeGrandMaster35 分钟前
爬虫+数据保存2
爬虫·python·mysql
deephub43 分钟前
过采样与欠采样技术原理图解:基于二维数据的常见方法效果对比
人工智能·python·机器学习·采样技术
北京_宏哥1 小时前
《最新出炉》系列入门篇-Python+Playwright自动化测试-41-录制视频
前端·python·测试
waterHBO1 小时前
python 制作 发货单 (生成 html, pdf)
python·pdf·html
love_and_hope1 小时前
Pytorch学习--神经网络--线性层及其他层
人工智能·pytorch·python·深度学习·神经网络·学习·pip
彳亍2611 小时前
【Python单元测试】pytest框架单元测试 配置 命令行操作 测试报告 覆盖率
python·单元测试·pytest