访问Pandas中的Zip压缩选项至_csv

Accessing zip compression options in pandas to_csv(访问Pandas中的Zip压缩选项至_csv)
本文介绍了访问Pandas中的Zip压缩选项至_csv的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在查找可用的压缩选项时遇到问题。 在本页底部: to_csv 他们有一个显示两个选项的示例:

COMPRESSION_OPTS=DICT(方法=‘ZIP’, 存档名称=‘out.csv’)
但我没有看到所有可用选项的列表。在其他地方也找不到。 我很想看看完整的清单(假设不止这两个) 目前的最终目标:压缩操作将文件压缩到一个压缩文件中,但所有文件夹也都在该压缩文件中,因此该文件实际上被隐藏在该压缩文件中的一堆文件夹中。我相信有一个简单的选项可以防止文件夹被添加到压缩包中...

推荐答案

我想我理解您的问题。假设我有一个数据帧,并且我想将其保存在本地的Zipfile中。假设我想要将该压缩文件保存在somepath/myfile.zip

位置

假设我运行此程序(还假设somepath/是当前工作目录中的有效文件夹):

### with_path.py

import pandas as pd

filename = "myfile"
df = pd.DataFrame([["a", 1], ["b", 2]])

compression_options = {"method": "zip"}
df.to_csv(f"somepath/{filename}.zip", compression=compression_options)

如果我列出结果文件的内容,我可以看到我想要存储Zip文件的路径也被用作Zip中的文件名,包括文件夹结构,甚至仍然命名为.Zip,这很奇怪:

(.venv) pandas_test % unzip -l somepath/myfile.zip
     
Archive:  somepath/myfile.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       17  09-17-2021 12:56   somepath/myfile.zip
---------                     -------
       17                     1 file

相反,我可以提供一个archive_name作为压缩选项,以显式地在压缩文件中为我的文件提供一个名称。如下所示:

### without_path.py

import pandas as pd

filename = "myfile"
df = pd.DataFrame([["a", 1], ["b", 2]])

compression_options = {"method": "zip", "archive_name": f"{filename}.csv"}
df.to_csv(f"somepath/{filename}.zip", compression=compression_options)

现在,尽管我们生成的压缩文件仍被写入somepath/中的文件的所需位置,但压缩文件不会将路径作为文件名的一部分,并且使用.csv扩展名正确命名。

(.venv) pandas_test % unzip -l somepath/myfile.zip

Archive:  somepath/myfile.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       17  09-17-2021 12:59   myfile.csv
---------                     -------
       17                     1 file

文档中似乎没有提到这种奇怪的默认行为,但您可以在pandas.DataFrame.to_csv文档的最后一个示例中看到archive_name参数的使用。我不知道他们应该抛出一个错误并强制您提供archive_name值,因为我无法想象您何时会想要将压缩文件中的文件命名为与压缩文件本身完全相同的名称。

这篇关于访问Pandas中的Zip压缩选项至_csv的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)