python - 在导入为熊猫数据框之前从压缩的 csv 文件中获取标头
问题描述
我正在尝试将 csv 文件作为 pandas 数据框导入,其中 csv 文件位于 zip 文件中。为了有效导入,我试图先获取标题,然后再将其加载到熊猫数据框中。
到目前为止,我尝试的是:
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)
基础文件的标题时,该文件被导入为没有标题的熊猫数据框。
真的很感激任何修复。
解决方案
您可以使用函数 seek() 重置 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)
推荐阅读
- odoo - ir.actions.act_window 显示采购订单列表
- r - 是否有用于构建包含 2 个变量的箱线图的 R 函数?
- node.js - 如何使用 .pfx 类型的证书修复 nodejs 中缺少中间/链证书
- sql - 基于松散定义的自由文本连接表
- sql - 使用或选择最近 30 天无效的数据
- python - Visual Studio Code...我没有得到什么
- javascript - 检查状态是真还是假
- gitlab - 禁用 mongodb 日志出现在 xunit 测试日志中
- php - Composer 通过搜索而不是通过 require 来查找包
- c++ - 我正在寻找随机数组中的最小值,有人知道为什么我的代码不起作用吗?C++