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
是否将我的数据误解为文件路径?我该如何解决?
答案 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')