通过pandas中的read_csv检索分隔符

Leo*_*loc 8 python csv pandas

当使用自动分隔符检测的配置来读取csv文件(pd.read_csv(file_path, sep=None))时,pandas会尝试推断分隔符(或分隔符).

有没有办法检索此推理的结果(最终用于的值sep)?

编辑

我正在寻找一个使用返回的pandas对象的方法read_csv.我使用版本0.20.2的熊猫.

cs9*_*s95 8

如果您只想检测 csv 的方言(不加载数据),您可以使用内置csv.Sniffer标准:

Sniffer 类用于推断 CSV 文件的格式。

具体来说,该sniff方法:

sniff(sample, delimiters=None)
Run Code Online (Sandbox Code Playgroud)

分析给定的样本并返回一个反映找到的参数的方言子类。如果给出了可选的分隔符参数,则将其解释为包含可能的有效分隔符的字符串。

下面是它的用法示例:

with open('example.csv', 'r') as csvfile:
    dialect = csv.Sniffer().sniff(csvfile.readline())
    print(dialect.delimiter)
Run Code Online (Sandbox Code Playgroud)


RHS*_*159 8

我认为你可以这样做而无需导入csv:

reader = pd.read_csv(file_path, sep = None, iterator = True)
inferred_sep = reader._engine.data.dialect.delimiter
Run Code Online (Sandbox Code Playgroud)

编辑:

忘了iterator = True论证.

  • 这是我一直在寻找的答案类型,但不幸的是它不起作用。我得到:`AttributeError: 'DataFrame' object has no attribute '_engine'`。我使用 0.20.2 版的熊猫。 (2认同)