微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Pandas:将WinZipped csv文件转换为Data Frame

我有几个WinZipped csv文件,并希望将其作为Pandas数据帧阅读.问题是,解压缩选项(‘gzip’或’bz2’)似乎都不起作用.这是文件的样子:

00000000011!00023011!89011!200812
00000000012!00023011!89011!200812
00000000013!00023011!89011!200812

因此,似乎我将不得不使用Python的zipfile模块解压缩文件,读取行并从我读入的内容创建数据框.我想这样做的方法是创建一个这样的字典列表:

[
    {"header1": 00000000011, "header2": 00023011, "header3": 89011, "header4": 200812}, 
    {"header1": 00000000012, "header2": 00023011, "header3": 89011, "header4": 200812},
    ...
]

然后将其转换为数据帧,如http://pandas.pydata.org/pandas-docs/stable/dsintro.html#from-a-list-of-dicts所示.

然而,这似乎涉及大量手动操作线 – 有没有更好的方法来做到这一点?

解决方法:

你只需要解压缩文件

with zipfile.ZipFile('/path/to/file', 'r') as z:
    f = z.open('member.csv')
    table = pd.io.parsers.read_table(f, ...)

read_table的filepath_or_buffer参数接受任何类似文件的参数.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐