Mar*_*nda 8 python csv delimiter separator pandas
我有一个函数可以读取和处理*.csv
多个数据帧中的文件。
但是,并非所有 CSV 文件都具有相同的分隔符。那么,python如何检测csv文件具有哪种类型的分隔符,然后在read_csv()
函数中使用它来在pandas中读取它呢?
df = pd.read_csv(path, sep = 'xxx',header = None, index_col = 0)
Run Code Online (Sandbox Code Playgroud)
Cor*_*ien 14
更新
\n事实上,用作engine=\'python\'
的参数read_csv
。它将尝试自动检测正确的分隔符。
\n\nsepstr,默认\xe2\x80\x98,\xe2\x80\x99
\n要使用的分隔符。如果 sep 为 None,则 C 引擎无法自动检测分隔符,但 Python 解析引擎可以,这意味着将使用后者并通过 Python\xe2\x80\x99s 内置嗅探工具 csv.Sniffer 自动检测分隔符。另外,长度超过1个字符且与\'\\s+\'不同的分隔符将被解释为正则表达式,也会强制使用Python解析引擎。请注意,正则表达式分隔符很容易忽略引用的数据。正则表达式示例:\'\\r\\t\'。
\n
使用csv.Sniffer
:
import csv\n\ndef find_delimiter(filename):\n sniffer = csv.Sniffer()\n with open(filename) as fp:\n delimiter = sniffer.sniff(fp.read(5000)).delimiter\n return delimiter\n
Run Code Online (Sandbox Code Playgroud)\n演示:
\n>>> find_delimiter(\'data.csv\')\n\',\'\n\n>>> find_delimiter(\'data.txt\')\n\' \' \n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
7689 次 |
最近记录: |