如何读取csv文件片段并放入单个pandas数据框中?

时间:2019-07-01 21:24:39

标签: python pandas csv python-requests

我有多个分块的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,
            )

它可以工作,但是对于大文件来说非常慢。如果我可以直接读取和写入数据框,那就太好了。将这些文件片段读入熊猫数据帧的最有效方法是什么?

0 个答案:

没有答案