"California Housing"データセットをソースURLから直接pandasデータフレームにロードしようとしています。 URLは、2つのファイルcal_housing.dataとcal_housing.domainを含むtgzファイルを指します。Python pandas read_csv - データフレームにtgz-zippedデータセットをロードする
pandas read_csvを使ってファイルを読み込んでいてもうまくいきますが、私が理解しておらず、取り除きたいエラーが1つあります。データフレームの最初の値(最初の行、最初の列)がファイル名に置き換えられます。
これはcal_housing.dataは、次のようになります。
0 -122.230000,37.880000,41.000000,880.000000,129.000000,322.000000,126.000000,8.325200,452600.000000
1 -122.220000,37.860000,21.000000,7099.000000,1106.000000,2401.000000,1138.000000,8.301400,358500.000000
2 -122.240000,37.850000,52.000000,1467.000000,190.000000,496.000000,177.000000,7.257400,352100.000000
3 ...
これはcal_housing.domainは、次のようになります。
0 longitude: continuous.
1 latitude: continuous.
2 housingMedianAge: continuous.
3 totalRooms: continuous.
4 totalBedrooms: continuous.
5 population: continuous.
6 households: continuous.
7 medianIncome: continuous.
8 medianHouseValue: continuous.
これは私が何をすべきかです:
import pandas as pd
source = 'http://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.tgz'
col_names = ['longitude', 'latitude', 'housingMedianAge', 'totalRooms', 'totalBedrooms', 'population', 'households', 'medianIncome', 'medianHouseValue']
data = pd.read_csv(source, compression='gzip', header=None, names=col_names).dropna()
print(type(data))
この私が得るものです:
0 CaliforniaHousing/cal_housing.data 37.88 41.0 ...
1 -122.220000 37.86 21.0 ...
2 -122.240000 37.85 52.0 ...
...
そして最後に、これは私が取得したいものです。
0 -122.230000 37.88 41.0 ...
1 -122.220000 37.86 21.0 ...
2 -122.240000 37.85 52.0 ...
...
それは私が行うにはしたくない、まさにです。私は解決策を見つけた。下記参照。 – cowhi
あなたはあなたが見ていたものを見ていた理由を理解できなかったと答えました。答えはtgzがサポートされていないということです。他にどのような制約があったのか、あるいはファイルをローカルに抽出したくない理由についての情報は提供していませんでした。 –
お時間をいただきありがとうございます。私は "URLから直接"書きました。私にとって、それはまさにそれを意味します。あなたが正しいです、それはこのファイルタイプをサポートしていないようですが、私が結果を見ていたときとよく似ていて、単純なパラメータがそれを変更するかもしれないと思いました。私はそのパラメータを見つけていないので、もっと複雑なものを作ります。 – cowhi