码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 反斜杠,让您的csv文档字符不撞车;让“借”您csv数据的人叫苦不迭。



    (本文获得CSDN质量评分【89】)

    【学习的细节是欢悦的历程】

    • Python 官网:https://www.python.org/

    • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……


      自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
                —— 华罗庚


    • My CSDN主页、My HOT博、My Python 学习个人备忘录
    • 好文力荐、 老齐教室
    等风来,不如追风去……


    反斜杠(“\”)
    让您的csv文档字符不撞车
    (让“借”(白嫖)您csv数据的人叫苦不迭)


    本文质量分:

    【 89 】
    本文地址: https://blog.csdn.net/m0_57158496/article/details/128194951

    CSDN质量分查询入口:http://www.csdn.net/qc


    目 录

    • ◆ 反斜杠,让csv文档字符不撞车
      • 1、标准csv
        • 1.1 默认英文逗号分隔数据字段
        • 1.2 自定义中文逗号分隔
        • 1.3 不同版本下的help(pandas.read_csv)
      • 2、试炼pandas.read_csv()
      • 3、反斜杠分割的csv
        • 3.1 常规读取报错
        • 3.2 反斜杠为python关键字,需用\转义。
      • 4、额外收获的自用文件小工具


    ◆ 反斜杠,让csv文档字符不撞车

      昨天在用csv格式存储我的股票买卖记录的时候,想到可不可以不用默认的半角逗号(英文逗号“,”)?在文本编辑器中看着被英文逗号分隔的字符像拧在一起的铁链,拥挤得别扭。用中文逗号多好!大气明朗,界限清晰。但pandas又该怎么读取哩?我可只会默认的用法——

    
    import pandas as pd
    df = pd.read_csv(filename)
    
    
    • 1
    • 2
    • 3
    • 4

    1、标准csv

    1.1 默认英文逗号分隔数据字段

    交易日期,时间,交易类型,单价,数量,费用
    2022-11-08,9:55,1,2.86,600,0
    2022-11-08,9:46,1,2.86,1000,0
    2022-11-03,9:53,-1,2.62,500,5
    2022-09-19,10:21,-1,2.76,1100,5
    2022-09-07,10:55,-1,2.97,500,5
    2022-09-01,10:27,-1,2.9,1000,5
    2022-09-17,09:48,1,3.11,400,5
    2022-08-4,10:15,-1,2.9,500,5
    2022-07-24,10:27,-1,3.08,400,5
    2022-06-24,14:36,-1,3.26,500,5

    1.2 自定义中文逗号分隔

    交易日期,时间,交易类型,单价,数量,费用
    2022-11-08,9:55,1,2.86,600,0
    2022-11-08,9:46,1,2.86,1000,0
    2022-11-03,9:53,-1,2.62,500,5
    2022-09-19,10:21,-1,2.76,1100,5
    2022-09-07,10:55,-1,2.97,500,5
    2022-09-01,10:27,-1,2.9,1000,5
    2022-09-17,09:48,1,3.11,400,5
    2022-08-4,10:15,-1,2.9,500,5
    2022-07-24,10:27,-1,3.08,400,5
    2022-06-24,14:36,-1,3.26,500,5

      csv文本倒是好看了,但pandas.read_csv()方法豆解析成这样子的了😭
    在这里插入图片描述
      幸好在老齐(点击“老齐”,可以跳转微信公众“老齐教室”了解详情)的书中学到了help()大法🤗🤗。上法宝——
    在这里插入图片描述

    
    import pandas as pd
    help(pd.read_csv)
    
    
    • 1
    • 2
    • 3
    • 4

    1.3 不同版本下的help(pandas.read_csv)

    在这里插入图片描述


    在这里插入图片描述
    Python3.10.2下的部分help()
    在这里插入图片描述
       Python3.6.6下的pandas版本是0.23.4,Python3.10.2下的pandas版本是1.4.1。
    在这里插入图片描述
    在这里插入图片描述


    回页目录

    2、试炼pandas.read_csv()

      经试炼,pandas.read_csv(filename, sep=)其参数设置中的“sep=”就是指明要读取的csv所用分隔符的(pandas0.23.4中是“sep=’,’”,pandas1.4.1中是“sep=”,她们都可以正常读取用英文逗号分隔的csv文档。)。经试炼,“sep=”可以设置任意字符,但也不要让她与您的数据字符撞车,不然pandas会被搞得晕头转向的。如设置成中文逗号,您要分割的数据中多半会有中文逗号,那就会让机器无所适从。pandas默认的英文逗号,但数据中也有可能包含英文逗号,一样会让机器迷茫,请看下面的试炼——

      如果前面csv文档第一行“交易日期”中间多出一个英文逗号,pandas就会解析成这样子了——columns豆多出一列来!😳“交易日期”也被pandas分割了。
    在这里插入图片描述
      经过一番推敲,我觉得反斜杠“\”比较合适。不但在文本中出现较少,且直接文本读csv数据也还算清晰明了。只要在pandas.read_csv()方法参数中用“sep=”告诉pandas,分隔符用的是反斜杠(sep=’\’),就可以正确解析数据。这样子,也让使用默认代码的搬运工抓狂,因为他不明白您的csv文本为啥子嫩多反斜杠,他还解析不出来(他们大多数人一般不给pandas.read_csv()方法加“sep=”参数说明)。🤗🤗🤗


    回页目录

    3、反斜杠分割的csv

    交易日期\时间\交易类型\单价\数量\费用
    2022-11-08\9:55\1\2.86\600\0
    2022-11-08\9:46\1\2.86\1000\0
    2022-11-03\9:53-1\2.62\500\5
    2022-09-19\10:21-1\2.76\1100\5
    2022-09-07\10:55-1\2.97\500\5
    2022-09-01\10:27-1\2.9\1000\5
    2022-09-17\09:48\1\3.11\400\5
    2022-08-4\10:15-1\2.9\500\5
    2022-07-24\10:27-1\3.08\400\5
    2022-06-24\14:36-1\3.26\500\5


    设置反斜杠的坑

    
    df = pd.read_csv(filename, sep='\') # 此行代码在*.py文件中第20行代码
    
    
    • 1
    • 2
    • 3

    3.1 常规读取报错

    Python3.6.6、Python3.10.2下的报错截屏
    在这里插入图片描述
    在这里插入图片描述

    3.2 反斜杠为python关键字,需用\转义。

      原来反斜杠单独出现,是续行符,“粘接”下一行代码,意即本行连同下一行本是一条语句。一般出现在行末。我的写法让python解析成续行符了,不可以用原字符串符号“r”,Python 一样要“误解”。用反斜杠转义,可解此错误。告诉Python我这里只是反斜杠而不是续行符。

    
    df = pd.read_csv(filename, sep='\\') # 此行代码在*.py文件中第20行代码
    
    
    • 1
    • 2
    • 3

    用sep=’\'参数说明,Pandas完美解析反斜杠分割的csv数据文本
    在这里插入图片描述


    回页目录

    4、额外收获的自用文件小工具

      因为这一顿操作,我的文件工具有了第一个方法“自动替换文件中的某一字符”。🤗🤗

    #!/sur/bin/nve python
    # coding: utf-8
    
    
    class MyFile:
        ''' 我的文件打理工具 '''
    
    
        def replace_char(self, filename, old, new):
            ''' 字符串替换 '''
            s = open(filename).read()
            s = s.replace(old, new)
    
            with open(filename, 'w') as f:
                f.write(s)
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    回页首

    __上一篇:__ Python之魔幻切片

    __下一篇:__ 

    我的HOT博:

      • 给定字符串提取姓名(字符串、list、re“零宽断言”)(1051阅读)
      • 我的 Python.color() (Python 色彩打印控制)(1125阅读)
      • python清屏(1290阅读)
      • 回车符、换行符和回车换行符(1322阅读)
      • Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义(1171阅读)
      • pandas 数据类型之 Series(1224阅读)
      • 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )(1270阅读)
      • 练习:银行复利计算(用 for 循环解一道初中小题)(1188阅读)
      • pandas 数据类型之 DataFrame(2136阅读)
      • :班里有人和我同生日难吗?(蒙特卡洛随机模拟法)(2180阅读)
      • Python字符串居中显示(2359阅读)
      • 练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)(1665阅读)
      • 用 pandas 解一道小题(2007阅读)
      • 可迭代对象和四个函数(1083阅读)
      • “快乐数”判断(1252阅读)
      • 罗马数字转换器(构造元素取模)(2159阅读)
      • Hot:罗马数字(转换器|罗生成器)(4750阅读)
      • Hot:让QQ群昵称色变的代码(36654阅读)
      • Hot:斐波那契数列(递归| for )(4071阅读)
      • 柱状图中最大矩形(1663阅读)
      • 排序数组元素的重复起止(1258阅读)
      • 电话拨号键盘字母组合(1402阅读)
      • 密码强度检测器(1986阅读)
      • 求列表平衡点(1837阅读)
      • Hot: 字符串统计(4308阅读)
      • Hot:尼姆游戏(聪明版首发)(3493阅读)尼姆游戏(优化版)(1175阅读)

      • 推荐条件 点阅破千


        回页首


        老齐漫画头像

        精品文章:

        • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
        • OPP三大特性:封装中的property
        • 通过内置对象理解python'
        • 正则表达式
        • python中“*”的作用
        • Python 完全自学手册
        • 海象运算符
        • Python中的 `!=`与`is not`不同
        • 学习编程的正确方法

        来源:老齐教室


        回页首

        ◆ Python 入门指南【Python 3.6.3】


        好文力荐:

        • 全栈领域优质创作者——寒佬(还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是学习的两大利器。

        • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛

        • 靠谱程序员的好习惯


        CSDN实用技巧博文:

        • 8个好用到爆的Python实用技巧
        • python忽略警告
        • Python代码编写规范
        • Python的docstring规范(说明文档的规范写法)

    • 相关阅读:
      Linux设备模型(五) - uevent kernel实现
      github 网页显示不全?
      AOP全局异常处理
      《理解深度学习》2023最新版本+习题答案册pdf
      C++ 类型转换(static_cast、dynamic_cast、reinterpret_cast、const_cast)
      【C++刷题】动态规划
      postman自动化运行接口测试用例
      NET微服务架构CI/CD自动构建Jenkins+Gitee
      【数据结构与算法系列5】螺旋矩阵II (C++ & Python)
      最新总结MySQL核心知识点
    • 原文地址:https://blog.csdn.net/m0_57158496/article/details/127779893
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号