Python 官网:https://www.python.org/
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
本文质量分:
CSDN质量分查询入口:http://www.csdn.net/qc
昨天在用csv格式存储我的股票买卖记录的时候,想到可不可以不用默认的半角逗号(英文逗号“,”)?在文本编辑器中看着被英文逗号分隔的字符像拧在一起的铁链,拥挤得别扭。用中文逗号多好!大气明朗,界限清晰。但pandas又该怎么读取哩?我可只会默认的用法——
import pandas as pd
df = pd.read_csv(filename)
交易日期,时间,交易类型,单价,数量,费用
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
交易日期,时间,交易类型,单价,数量,费用
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)


Python3.10.2下的部分help()

Python3.6.6下的pandas版本是0.23.4,Python3.10.2下的pandas版本是1.4.1。


经试炼,pandas.read_csv(filename, sep=
如果前面csv文档第一行“交易日期”中间多出一个英文逗号,pandas就会解析成这样子了——columns豆多出一列来!😳“交易日期”也被pandas分割了。

经过一番推敲,我觉得反斜杠“\”比较合适。不但在文本中出现较少,且直接文本读csv数据也还算清晰明了。只要在pandas.read_csv()方法参数中用“sep=”告诉pandas,分隔符用的是反斜杠(sep=’\’),就可以正确解析数据。这样子,也让使用默认代码的搬运工抓狂,因为他不明白您的csv文本为啥子嫩多反斜杠,他还解析不出来(他们大多数人一般不给pandas.read_csv()方法加“sep=”参数说明)。🤗🤗🤗
交易日期\时间\交易类型\单价\数量\费用
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行代码
Python3.6.6、Python3.10.2下的报错截屏


原来反斜杠单独出现,是续行符,“粘接”下一行代码,意即本行连同下一行本是一条语句。一般出现在行末。我的写法让python解析成续行符了,不可以用原字符串符号“r”,Python 一样要“误解”。用反斜杠转义,可解此错误。告诉Python我这里只是反斜杠而不是续行符。
df = pd.read_csv(filename, sep='\\') # 此行代码在*.py文件中第20行代码
用sep=’\'参数说明,Pandas完美解析反斜杠分割的csv数据文本

因为这一顿操作,我的文件工具有了第一个方法“自动替换文件中的某一字符”。🤗🤗
#!/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)
我的HOT博:
精品文章:
来源:老齐教室
◆ Python 入门指南【Python 3.6.3】
好文力荐:
全栈领域优质创作者——寒佬(还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是学习的两大利器。
CSDN实用技巧博文: