pandasというのは表データを読み込んで表示、抽出、行追加、列追加等ができるライブラリになります。
表データというのは行列で構成されたデータです!
ExcelやCSVがまさにそれです。
下記のようなデータです。
ライブラリは特定の処理ができるようにまとめたもの。
とでも理解すればよいでしょう。
やりたい処理によって用いるライブラリが異なります。
コマンドプロンプトを用いてpandasをインストールします。
pip install pandas
と入力して実行します。
※下記のようなエラーが出る場合がります。
pipは内部コマンドまたは外部コマンドとして認識されておりません。
解決方法はこちらがわかりやすいと思います。
IDLEを用いて開発、実行を進めます。
IDLEはpython実行用のアプリケーションです。
スタートメニューから起動できます。
起動したらFile→New Fileを選択すると新規で真っ白なWindowが表示されます。ここにプログラムを記述します。
それではまずはCSVファイルを読み込むコードを書きます。
pandasをインポートします。
import pandas
pandas.read_csv()でCSVファイルを読み込みます。
()内にはファイルパスを記入します。
今回はコードファイルとCSVファイルが同じ階層にあるためファイル名だけでOKです。
読み込んだデータをsample_dateに格納します。
sample_date = pandas.read_csv(“test.csv”)
読み込んだデータを表示します。
print(sample_date)
まとめると下記になります。
それでは実行してみましょう。
下記のように表示されればOKです。
※下記のようなエラーが出る場合がります。
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x96 in position 0: invalid start byte
読み込みCSVファイルの種類ですが下記の通りUTF-8で保存してください。
解決すると思います。
sample_dateのデータ型を調べてみましょう。
print(type(sample_date))と記述します。
class ‘pandas.core.frame.DataFrame’と表示されます。
DataFrameというのは Pandas における二次元配列のデータ型を意味しています。
二次元配列,つまり表形式です。
表形式は行と列がありますから2次元なのです。
表形式というと馴染みのものにはExcelがありますが、ExcelやCSVを読み込むとPandasではDataFrameというデータ型になります。
プログラム初心者の方は分かりづらいところですが、
データには型があってそれらを意識してプログラムする必要があります。
読み込んだデータの位置を指定して表示させることができます。
データ名.iloc[行番号,列番号]で記述します。
cell = sample_date.iloc[0,0]
print(cell)と記述します。
Aが表示されます。
cell = sample_date.iloc[0,1]
print(cell)と記述します。
1級が表示されます。
※行番も列番も0からスタートする点を注意してください。
次は範囲指定で抽出してみましょう。
名前と英検の列だけ抽出したいとします。
cell = sample_date.iloc[0:11,0:2]
print(cell)と記述します。
※11行目、2列目は含まない点を注意してください。
下記のように抽出されました。
直接列名を指定して表示させることもできます。
データ名.loc[]を用います。
cell = sample_date.loc[0:10,[“名前”,”英検”]]
print(cell)と記述します。
結果は先ほどと同じです。
※locの場合はilocと異なり行番をマイナス1しないので注意してください。
特定の条件にあうデータだけ抽出したいとします。
query()関数を用います。
データ名.query()のように記述します。
()内は条件式が入ります。
年齢40以上の方を抽出したいとします。
その場合、
cell = sample_date.query(“年齢 >= 40”)
print(cell)と記述します。
下記のように40以上の行が表示されます。
それでは学歴の列で大卒だけを抽出したい場合は
下記のように記述します。
cell = sample_date.query(“学歴 == ‘大卒'”)
print(cell)と記述します。
実行してみます。
下記のように大卒者の行だけが表示されます。
次に複数条件抽出をやってみましょう!
cell = sample_date.query(“年齢 >= 40 and 学歴 == ‘大卒'”)
print(cell)と記述します。
実行してみます。
下記のように年齢40以上かつ大卒者の行だけが表示されます。
独学に疲れたらプログラミングスクールも良いでしょう。
確かにお金はかかりますが
無駄に悩む時間を節約できます。
私もテックアカデミーにはお世話になりました。
下記リンク👇
列データを追加する場合以下のように記述します。
データ名[“追加列名”] = [“0行目要素”,”1行目要素”,”2行目要素”・・・・]
それでは性別という列を追加してみます。
コードは下記のようになります。
sample_date[“性別”] =[“男”,”男”,”女”,”女”,”女”,”男”,”女”,”女”,”男”,”女”,”女”]
print(sample_date)
実行します。
下記のように性別という列が追加されます。
行データを追加する場合以下のように記述します。
データ名.loc[追加行番号] = [“0列目要素”,”1列目要素”,”2列目要素”・・・・]
それではLさんという人を追加してみます。
コードは下記のようになります。
sample_date.loc[11] =[“L”,”1級”,”900″,”大卒”,”50″,”男”]
print(sample_date)
実行します。
下記のように11行目にLさんが追加されます。
最後に削除方法です。
列削除する場合以下のように記述します。
データ名.drop(“列名”,axis = 1)
それでは名前の列を削除します。
コードは下記のようになります。
sample_date = sample_date.drop(“名前”,axis = 1)
print(sample_date)
実行します。
下記のように名前の列が消えました。
行削除する場合以下のように記述します。
データ名.drop(行番号,axis = 0)
それでは0行目を削除します。
コードは下記のようになります。
sample_date = sample_date.drop(0,axis = 0)
print(sample_date)
実行します。
下記のように0行目が消えました。
プログラミングスクールテックアカデミーでは無料相談もやっています。
いきなり申込むのはちょっと・・・
というのであれば一度相談してみるのも良いでしょう。
受講にあたっての不安をぶつけてみてください。
一人で悩むのは時間の無駄と思い私もお世話になったテックアカデミー。
pythonやAIを学びました。
申し込み先は下記です。
最後に実践的なデータを読み込んでそのデータを詳しく調べていきましょう!
今回は政府統計のサイトから国勢調査を利用します。
下記を利用👇
pandas.read_csv()でCSVファイルを読み込みます。
()内にはファイルパスを記入します。
読み込みしたCSVファイルを変数:datasetに格納します。
dataset = pandas.read_csv(“C:\Users\user\Desktop\c03.csv”, encoding = “shift-jis”)
※encoding = “shift-jis”について
コンピュータでは文字コードというものがあります。
サンキュウという言葉が日本人は産休、アメリカ人にはThankyouとなるよう
な違いです。
今回利用している国勢調査のCSVファイルはshift-jisを利用しています。
何も指定しなければUTF-8で読み込みますので文字化けが起こります。
そのためのencoding = “shift-jis”なのです。
その他の回避策として読み込みCSVファイルの種類ですが下記の通りUTF-8で
保存します。その場合、encoding = “shift-jis”は不要です。
dataset.head()にてデータを表示してみましょう。
()内に数字を入れますとその行分表示されます。
print(dataset.head(100))
※数字を入れなければ5行だけ表示されます。
datesetのデータ型を調べてみましょう。
print(type(dataset))と記述します。
class ‘pandas.core.frame.DataFrame’と表示されます。
DataFrameというのは Pandas における二次元配列のデータ型を意味しています。
二次元配列,つまり表形式です。
表形式は行と列がありますから2次元なのです。
データの形状みていきましょう。
dataset.shapeを用います。
print(dataset.shape)
(17668, 9)と表示されました。
これは17668行、9列のデータであるという意味です。
行番号と列名を表示してみましょう。
行はprint(dataset.index.values)
列はprint(dataset.columns.values)
列の型もあわせて表示してみましょう。
print(dataset.dtypes)
実行します。
下記のように表示されます。
※型というのはデータの種類でint(整数)、float(実数)、str(文字列)等です。
ソースコードです。
今回紹介させて頂いたものを一通りまとめています。
以下は私がこの記事を執筆するにあたって参考にした書籍になります。
非常に優しく記載されておりますので初心者には非常に良いと思います。