154

ファイルで作業できるように、csv ファイルを解凍して pandas に渡そうとしています。
これまでに試したコードは次のとおりです。

import requests, zipfile, StringIO
r = requests.get('http://data.octo.dc.gov/feeds/crime_incidents/archive/crime_incidents_2013_CSV.zip')
z = zipfile.ZipFile(StringIO.StringIO(r.content))
crime2013 = pandas.read_csv(z.read('crime_incidents_2013_CSV.csv'))

最後の行の後、python はファイルを取得できますが、エラーの最後に「存在しません」と表示されます。

誰かが私が間違っていることを教えてもらえますか?

4

6 に答える 6

233

zip ファイルまたは tar.gz ファイルを pandas データフレームに読み込む場合、read_csvメソッドにはこの特定の実装が含まれます。

df = pd.read_csv('filename.zip')

または長い形式:

df = pd.read_csv('filename.zip', compression='zip', header=0, sep=',', quotechar='"')

ドキュメントからの圧縮引数の説明:

compression : {'infer', 'gzip', 'bz2', 'zip', 'xz', None}, default 'infer' ディスク上のデータのオンザフライ解凍用。'infer' で filepath_or_buffer がパスに似ている場合、次の拡張子からの圧縮を検出します: '.gz'、'.bz2'、'.zip'、または '.xz' (それ以外の場合は解凍なし)。「zip」を使用する場合、ZIP ファイルには読み込むデータ ファイルが 1 つだけ含まれている必要があります。解凍しない場合は、None に設定します。

バージョン 0.18.1 の新機能: 'zip' および 'xz' 圧縮のサポート。

于 2015-10-07T13:30:12.870 に答える
45

openではなく、ファイルのようなオブジェクトを返す ZipFileが必要だと思いますread

In [11]: crime2013 = pd.read_csv(z.open('crime_incidents_2013_CSV.csv'))

In [12]: crime2013
Out[12]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 24567 entries, 0 to 24566
Data columns (total 15 columns):
CCN                            24567  non-null values
REPORTDATETIME                 24567  non-null values
SHIFT                          24567  non-null values
OFFENSE                        24567  non-null values
METHOD                         24567  non-null values
LASTMODIFIEDDATE               24567  non-null values
BLOCKSITEADDRESS               24567  non-null values
BLOCKXCOORD                    24567  non-null values
BLOCKYCOORD                    24567  non-null values
WARD                           24563  non-null values
ANC                            24567  non-null values
DISTRICT                       24567  non-null values
PSA                            24567  non-null values
NEIGHBORHOODCLUSTER            24263  non-null values
BUSINESSIMPROVEMENTDISTRICT    3613  non-null values
dtypes: float64(4), int64(1), object(10)
于 2013-09-19T02:26:38.543 に答える