当前位置: 首页 > article >正文

Python 实现 excel 数据过滤

一、场景分析

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

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

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

小林书店福州店1

小林书店福州店2 

二、依赖安装

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

pip install pandas

 三、代码实现

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')

四、运行

py shop_filter.py

 

五、扩展阅读

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


http://www.kler.cn/news/362527.html

相关文章:

  • 什么是分库分表?为什么要分库分表?什么时候需要分库分表?怎么样拆分?(数据库分库分表详解)
  • 关于jmeter中没有jp@gc - response times over time
  • 【ELK】初始阶段
  • 汽配企业数字工厂管理系统实施规划方案
  • 打开游戏提示丢失(或找不到)XINPUT1_3.DLL的多种解决办法
  • 「C/C++」C++ STL容器库 之 std::map 键值对的集合容器
  • day01|计算机网络重难点之TCP/IP模型和OSI模型的区别、从输入 URL 到页面展示
  • JMeter模拟并发请求
  • 【Java】揭秘网络编程:深入探索其无尽奥秘与魅力
  • Kotlin 入门教程:函数
  • Detecting Holes in Point Set Surfaces 论文阅读
  • 面对对象抽象类与普通类的区别
  • 初识js-cnblog
  • 接口测试(六)jmeter——参数化(配置元件 --> 用户定义的变量)
  • 【LeetCode】每日一题 2024_10_18 使二进制数组全部等于 1 的最少操作次数 I(贪心)
  • 6-2.Android 对话框之基础对话框问题清单(UI 线程问题、外部取消、冲突问题、dismiss 方法与 hide 方法)
  • 【单元测试】深入解剖单元测试的思维逻辑
  • Nextjs Tailwind CSS 下载和配置
  • 027 elasticsearch查询数据-Java原生客户端
  • 前后端请求一致性学习
  • 解析NIO
  • 如何在 JavaScript 项目中限制Node.js版本
  • 【动手学电机驱动】 TI InstaSPIN-FOC(7)Lab05b 速度环控制
  • RabbitMQ进阶_可靠性
  • 大数据新视界 --大数据大厂之 Snowflake 在大数据云存储和处理中的应用探索
  • 网络安全的挑战与对策:从技术防御到综合治理的全方位分析