我有多个分块的bin文件,可以从url下载这些文件:
sample file1 from url1:
BibNumber,ItemBarcode,ItemType,Collection,CallNumber,CheckoutDateTime
1898883,0010047377493,jcbk,ncfic,J LEWIS,04/21/2009 07:46:00 PM
2496852,0
sample file2 from url2:
010061167887,acbk,nanf,291.4 L5664S 2000,02/05/2009 11:41:00 AM
sample file3 from url3:
1898883,0010047377493,jcbk,ncfic,J LEWIS,04/21/2009 07:46:00 PM
如您所见,这些文件最初来自相同的csv文件,并被分成许多部分。而且它们有可能在一排中间被拆分。 (对于上面的示例,第二行同时存在于file1和file2中)
现在,我需要从url下载这些文件,并将它们读入一个pandas数据框中。我尝试将这些文件读入一个临时文件,然后转换为数据帧:
with tempfile.NamedTemporaryFile(mode="a+", suffix=".csv") as temp_csv:
for url in urls:
temp_csv.write(get(url).text)
temp_csv.flush()
temp_csv.seek(0)
df = pd.read_csv(
temp_csv.name,
sep=None, # when set to None, auto-detection is used
engine="python",
quotechar=quotechar,
names=self._get_columns(namespace, table_name)
if not include_header
else None,
)
它可以工作,但是对于大文件来说非常慢。如果我可以直接读取和写入数据框,那就太好了。将这些文件片段读入熊猫数据帧的最有效方法是什么?