前提・実現したいこと
教科書に沿ってプログラミングを組んでいます
そのなかで教科書通りに打ち込んでも出来ない箇所がありました。
また、Macを使用しています。
使用している教科書は「東京大学のデータサイエンティスト育成講座」です
発生している問題・エラーメッセージ
*1 /Users/mahiro/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:7: UserWarning: Pandas doesn't allow columns to be created via a new attribute name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access import sys これがエラーメッセージとしてでます。背景が赤くなっています。 また、内容を確認してもカラムは変更されていませんでした。 *2 File "<ipython-input-15-bed5b22e641a>", line 1 auto=auto.assign(25=pd.to_numeric(auto.25)) ^ SyntaxError: invalid syntax やはり、数字のままではできないのでしょうか?
該当のソースコード
python3
1import numpy as np 2import numpy.random as random 3import scipy as sp 4from pandas import Series,DataFrame 5import pandas as pd 6import matplotlib.pyplot as plt 7import matplotlib as mpl 8import seaborn as sns 9%matplotlib inline 10import sklearn 11%precision 3 12#'%.3f' 13 14import requests,zipfile 15import io 16 17url='http://archive.ics.uci.edu/ml/machine-learning-databases/autos/imports-85.data' 18res=requests.get(url).content 19 20#***********1以下の部分にエラーメッセージが出てします 21#取得したデータをDATAFrameオブジェクトとして読み込み 22auto=pd.read_csv(io.StringIO(res.decode('utf-8')),header=None) 23#データの列にラベルを設定 24auto.colums=['symboling','normalized-losses','make','fuel-type','aspiration','num-of-doors', 25 'body-style','drive-wheels','engine-location','wheel-base','length','width','height', 26 'curb-weight','engine-type','num-of-cylinders','engine-size','fuel-system','bore', 27 'stroke','compression-ratio','horsepower','peak-rpm','city-mpg','higtway-mpg','price'] 28#*************** 29#それぞれのカラムに?が何個あるかをカウント 30auto=auto[[25,21,11,12]] 31auto.isin(['?']).sum() 32''' 3325 4 3421 2 3511 0 3612 0 37dtype: int64 38''' 39 40#そのため、無理矢理数字のままでとりあえず作業することにしたのですが、 41 42#?をNaNに置換して、NaNがある行を削除 43auto=auto.replace('?',np.nan).dropna() 44print('自動車データの形式:{}'.format(auto.shape)) 45#自動車データの形式:(199, 4) 46 47print('データ型の確認(型変換前)\n{}\n'.format(auto.dtypes)) 48''' 49データ型の確認(型変換前) 5025 object 5121 object 5211 float64 5312 float64 54dtype: object 55''' 56 57#***********2 教科書の本来カラム名が入る場所を数字に置き換えたところ、上手くいきませんでした 58auto=auto.assign(25=pd.to_numeric(auto.25)) 59auto=auto.assign(21=pd.to_numeric(auto.21)) 60print('データ型の確認(型変換後)\n{}\n'.format(auto.dtypes)) 61#************
お願い
質問のマナー等が間違っている、内容がわかりにくい等ありましたらご指摘お願いします。
回答1件
あなたの回答
tips
プレビュー