在导入为 pandas 数据框之前从压缩的 csv 文件获取标题

我正在尝试将 csv 文件作为 pandas 数据框导入,其中 csv 文件位于 zip 文件内。为了高效导入,我尝试先获取标题,然后再将其加载到 pandas 数据帧中。


到目前为止我尝试过的是:


from zipfile import ZipFile

from io import TextIOWrapper

import pandas as pd


with ZipFile(zip_path, 'r') as zipfile:

    with zipfile.open(file_path, 'r') as file:

        reader = csv.reader(TextIOWrapper(file, 'utf-8', newline=''))

        headers = next(reader)


        df = pd.read_csv(file)

问题是,当我获取next(reader)底层文件的标头受到影响时,该文件将作为没有标头的 pandas 数据框导入。


真的很感激任何修复。


慕姐4208626
浏览 209回答 1
1回答

梦里花落0921

您可以使用函数eek()重置CSV迭代器:with ZipFile('test.zip', 'r') as zipfile:    with zipfile.open('test.csv', 'r') as file:        reader = csv.reader(TextIOWrapper(file, 'utf-8', newline=''))        headers = next(reader)        # reset CSV iterator        file.seek(0)        df = pd.read_csv(file)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python