- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是下载 zip 文件的链接,其中包含英国政府国家统计局发布的 1GB 邮政编码级别数据: https://www.arcgis.com/sharing/rest/content/items/19fac93960554b5e90840505bd73917f/data
有关数据的信息可以在这里找到: http://geoportal.statistics.gov.uk/datasets/19fac93960554b5e90840505bd73917f
我在 Python 的数据科学应用程序中使用了这些数据,并将其加载到 Pandas 数据框中。我已将其集成到一个简单的网页中,并将其部署到云端。我不想在我从 AWS EC2 实例访问的存储库中包含大数据。因此,据我所知,我有两个选择:
1) 将压缩文件包含在存储库中,并将 CSV 文件读入 Pandas 数据框中。
2) 打开 url,在文件中流式传输并在脚本中提取它,然后将 CSV 读入 Pandas 数据帧。
这两种方法的问题是 zip 文件包含我需要的 csv 文件以外的内容,我不确定如何具体访问它。
我考虑的另一种方法是在将其包含在存储库之前只压缩我需要的单个 csv,但这似乎会生成多余的文件:
('Multiple files found in compressed zip file %s', "['NSPCL_AUG19_UK_LU.csv', '__MACOSX/', '__MACOSX/._NSPCL_AUG19_UK_LU.csv']")
所以我遇到了同样的问题,无法直接指向我需要的文件。
请告诉我什么是最佳实践以及如何将我需要的文件放入 Pandas 数据框中。
最佳答案
您可以执行以下操作来提取主 csv 文件并将其直接加载到数据框中:
from urllib.request import urlopen
import zipfile, io
url = 'https://www.arcgis.com/sharing/rest/content/items/19fac93960554b5e90840505bd73917f/data'
archive = zipfile.ZipFile(io.BytesIO(urlopen(url).read())) # Takes some time
csv_path = 'Data/NSPL_AUG_2019_UK.csv' # The desired csv file in the archive
df = pd.read_csv(io.BytesIO(archive.read(csv_path))) # Takes some time
>>> df
pcd pcd2 pcds ... imd calncv stp
0 AB1 0AA AB1 0AA AB1 0AA ... 6808 S99999999 S99999999
1 AB1 0AB AB1 0AB AB1 0AB ... 6808 S99999999 S99999999
2 AB1 0AD AB1 0AD AB1 0AD ... 6808 S99999999 S99999999
3 AB1 0AE AB1 0AE AB1 0AE ... 5503 S99999999 S99999999
4 AB1 0AF AB1 0AF AB1 0AF ... 6668 S99999999 S99999999
... ... ... ... ... ... ... ...
2632799 ZE3 9JW ZE3 9JW ZE3 9JW ... 4187 S99999999 S99999999
2632800 ZE3 9JX ZE3 9JX ZE3 9JX ... 4187 S99999999 S99999999
2632801 ZE3 9JY ZE3 9JY ZE3 9JY ... 4187 S99999999 S99999999
2632802 ZE3 9JZ ZE3 9JZ ZE3 9JZ ... 4187 S99999999 S99999999
2632803 ZE3 9XP ZE3 9XP ZE3 9XP ... 4187 S99999999 S99999999
[2632804 rows x 41 columns]
现在您可以按照 iliar 的建议将数据框单独存储在压缩文件中:
df.to_pickle('NSPL_AUG_2019_UK.pkl', compression='gzip') # Takes some more time
当我尝试这个时,生成的文件大小约为 69MB,因此将它托管在云中应该没有任何问题。
要再次访问数据框,只需加载 pickled 文件:
>>> df = pd.read_pickle('NSPL_AUG_2019_UK.pkl')
pcd pcd2 pcds ... imd calncv stp
0 AB1 0AA AB1 0AA AB1 0AA ... 6808 S99999999 S99999999
1 AB1 0AB AB1 0AB AB1 0AB ... 6808 S99999999 S99999999
2 AB1 0AD AB1 0AD AB1 0AD ... 6808 S99999999 S99999999
3 AB1 0AE AB1 0AE AB1 0AE ... 5503 S99999999 S99999999
4 AB1 0AF AB1 0AF AB1 0AF ... 6668 S99999999 S99999999
... ... ... ... ... ... ... ...
2632799 ZE3 9JW ZE3 9JW ZE3 9JW ... 4187 S99999999 S99999999
2632800 ZE3 9JX ZE3 9JX ZE3 9JX ... 4187 S99999999 S99999999
2632801 ZE3 9JY ZE3 9JY ZE3 9JY ... 4187 S99999999 S99999999
2632802 ZE3 9JZ ZE3 9JZ ZE3 9JZ ... 4187 S99999999 S99999999
2632803 ZE3 9XP ZE3 9XP ZE3 9XP ... 4187 S99999999 S99999999
[2632804 rows x 41 columns]
关于python - 将大文件从 .zip 存档写入 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58843489/
我想用 File::Find 归档所有 txt 文件,删除源文件并删除空目录。 我在使用“$tar->rename( );”重命名文件时遇到困难因为我想从它们的完整路径名中删除它们并仅使用父目录/*.
我试图从一个远程存储库中获取一个目录,但我只想从特定的哈希中获取该文件。如果我使用带有 HEAD 的 git archive 一切正常,但是当我尝试使用特定的哈希时: git archive -v -
无论当前目录如何,我都在尝试归档我的项目。 项目结构 main_folder/ sub1/ sub2/ sub3/ 如果我 cd至 main_folder/sub2/s
我有一个创建 install-tars 的远程裸存储库(无工作目录)。很好用。但是现在我只想为更改的文件创建 tars。我这样试过: git archive --format=tar --prefix
我正在构建自己的 rpm。通常我使用 git archive 从我感兴趣的提交或标签中获取 tarball(假设我放了一个标签 1.0): git archive --format=tgz --pre
如何使用 git archive 创建当前存储库的存档,包括本地未提交的更改? 最佳答案 我知道这是旧的,但我想我找到了解决方案。 运行: stashName=`git stash create`;
当我尝试发布 aab 时,出现此错误。请有人帮助我。我该如何修复它。 点击蓝色链接查看图片 最佳答案 当我使用拖放操作到网络浏览器时,我经常遇到这个错误。 如果我使用页面上的“上传”按钮并使用文件选择
我试图通过使用归档模块从 2 个文件夹中创建 2 个归档。 不幸的是,它无法正常工作,没有任何错误。 我的任务如下所示: tasks: - name: create a tarball of
我不想创建一个没有内部目录结构的“平面”tarball。但我希望顶级文件是“松散的”而不是镜像它们最初所在的目录结构。 考虑: + archives | + data | + site
这个问题在这里已经有了答案: 10年前关闭。 Possible Duplicate: Xcode 4 Archive Version Unspecified 你好, 我正在为 iPad 临时部署归档应
我想将 UIWebView 的当前状态保存到 iPhone SDK 中的磁盘。 我有一个 UIWebView,它加载一个包含大量 JavaScript 的网站。我想保存 UIWebView 状态,维护
存档我的 Mac OS 应用程序时,我收到“通用 Xcode 存档”。我读过,可以通过在任何静态库上将 Skip Install 设置为 YES 来解决此问题,但我没有添加任何静态库。我有两个目标和一
可以使用什么组件或方法来指定文件名列表,然后将它们压缩到单个存档中? 我不需要高级功能或任何东西,但如果我可以将一些文件名添加到字符串列表中,然后将这些文件放入 ZIP 中,那就太好了。 我尝试搜索一
我有一个很大的 tar 文件,我分割了。是否可以使用管道来 cat 并解压文件。 类似于: cat largefile.tgz.aa largefile.tgz.ab | tar -xz 而不是: c
我使用 distZip 任务来创建我的发行版。目前发行版名称为“baseName”-“version”.zip。我想将当前时间戳用作分类器,即构建时间。 我尝试使用 distZip { cla
我正在尝试将 MySQL 查询的输出动态写入存档。这是我的代码: var async = require("async"); var mysql = require("mysql"); var exp
也许是个愚蠢的问题,但我的谷歌不起作用。在我的存储库根目录上执行以下操作: $ hg archive my_archive.tar.gz 给我一个 tar.gz 文件,其中包含一个名为 my_ar
[root@c0002242 lfeng]# tar -zxvf/opt/test/ALLscripts.tar.gz -C/opt/test1 tar:这看起来不像 tar 存档 tar:跳到下一个
我的tree命令返回 tmp `-- t `-- e |-- foo.ps `-- s |-- bar.ps `
在编译DLL时,我遇到了许多undefined reference错误,我认为这可能是由于库之间的循环依赖关系引起的。为了解决这个问题,我一直在尝试使用-(文件-)和--start-group文件--
我是一名优秀的程序员,十分优秀!