熊猫:如何加载包含多个txt文件的zip文件?

ℕʘʘ*_*ḆḽḘ 4 python csv zip pandas

zip我的路径中存储了很多文件

  • mypath/data1.zip
  • mypath/data2.zip
  • 等等

每个zip文件包含三个不同的txt文件.例如,data1.zip有:

  • data1_a.txt
  • data1_b.txt
  • data1_c.txt

我需要加载datai_c.txt每个压缩文件(也就是data1_c.txt,data2_c.txt,data3_c.txt,等),并连接成一个数据帧.

不幸的是我无法使用read_csv它,因为它只适用于单个压缩文件.

有什么想法怎么做?谢谢!

JD *_*ong 7

因此,您需要一些其他代码才能进入zip文件.下面是O'Reilly的Python Cookbook的修改代码

import zipfile
import pandas as pd
## make up some data for example
x = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) 
x.to_csv('a.txt', sep="|", index=False) 
(x * 2).to_csv('b.txt', sep="|", index=False)

with zipfile.ZipFile('zipfile.zip', 'w') as myzip:
    myzip.write('a.txt')
    myzip.write('b.txt')
    for filename in z.namelist( ): print 'File:', filename,
         insideDF = pd.read_csv(StringIO(z.read(filename)))
         df = pd.concat([df, insideDF])
print df
Run Code Online (Sandbox Code Playgroud)