大字串的pandas read_csv失败

时间:2019-05-12 17:52:49

标签: python-3.x pandas

Python 3.7
熊猫0.24.2

在Python脚本中,我正在从远程服务器加载许多CSV的zip文件。然后,我将这些CSV的子集读取为utf-8字符串,此后,我尝试使用.read_csv()将每个CSV字符串读取到数据帧中。尝试执行此操作失败。对于单个字符串:

large_string = '"num","domain_name",...,"clientTransferProhibited","","","";'

df = pd.read_csv(large_string, sep=',', engine='python')

预期:返回一个数据框并运行其余脚本。
已观察:从终端运行时,所有large_string都会打印到控制台,然后脚本结束(即,没有完成其他代码,但没有错误消息)。在PyCharm中运行时,也会发生同样的事情,但是我也看到它正在将熊猫栈拖延下来:

pandas> io> parsers> common.py

在第427行: f = open(path_or_buf, mode, errors='replace', newline="")

在PyCharm调试的common.py框架内,我可以看到抛出了异常Error 63 File name too long(尽管出于某种原因该异常从未打印到控制台)。

这是怎么回事? read_csv是否将我的数据误解为文件路径?我该如何解决?

2 个答案:

答案 0 :(得分:1)

一个简单的解决方案是使用分割

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="searchInput" placeholder="Search text">

<div id="searchResult"></div>

答案 1 :(得分:0)

read_csv实际上是将数据误解为文件路径。

解决方案是将字符串转换为文本缓冲区,该缓冲区本身会传递给read_csv

import io

large_string = '"num","domain_name",...,"clientTransferProhibited","","","";'

df = pd.read_csv(io.StringIO(large_string), sep=',', engine='python')