異なる種類のtxtファイルを含む複数のZipファイルがあります。以下のように:
Zip1
- file1.txt
- file2.txt
- file3.txt
pandasを使用して、それらのファイルを抽出せずに読み取るにはどうすればよいですか?
Zipごとに1ファイルである場合、read_csvで次のような圧縮方法を使用できます。
df = pd.read_csv(textfile.Zip, compression='Zip')
これを行う方法についての助けがあれば素晴らしいでしょう。
ZipFile.open()
をpandas.read_csv()
に渡して、マルチファイルZip
にパックされたcsvファイルからpandas.DataFrame
を構築できます。
pd.read_csv(Zip_file.open('file3.txt'))
.csv
を辞書に読み込む例:from zipfile import ZipFile
Zip_file = ZipFile('textfile.Zip')
dfs = {text_file.filename: pd.read_csv(Zip_file.open(text_file.filename))
for text_file in Zip_file.infolist()
if text_file.filename.endswith('.csv')}
しばらく前にXMLファイルで同様の問題がありました。 zipfileモジュールはそこに行くことができます。
from zipfile import ZipFile
z = ZipFile(yourfile)
text_files = z.infolist()
for text_file in text_files:
z.read(text_file.filename)
それらをpandasオブジェクトに連結したい場合、少し複雑になるかもしれませんが、それで始められるはずです。read
メソッドはバイトを返すので、それも処理する必要があるかもしれません。