【5分で解説!】Pandasでハマった人へ!行と列の抽出、更新、日付の比較方法の凡例を解説

■この記事でわかること

・PythonのPandasライブラリーを使った基本的なデータの操作がわかる

・具体的には以下のデータの操作

・データの型の確認方法

・データの取り出し方(抽出)2選

・データの更新方法

・データの追加方法

・時間の比較方法

 

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア

Pandasの基本的な使い方

今回は、Pandasの基本的な使い方を解説します。

説明は以下条件で進めます。

・データはcsvファイル名「Pandas_text.csv」に格納されているとする。

・Pandas型変数 dfにはcsvのデータが読み込まれているものとする。

・最後にコードの全体がわかるようにgistのリンクを記載します。

 

「Pandas_text.csv」には、以下のような表のように格納されてる。

id date 数値 コメント
1 2017/10/1 600 cash
2 2017/10/2 1000 card1
3 2017/10/2 2000 card1
4 2017/10/3 2400 card2
5 2017/10/4 900 card3
6 2017/10/5 2200 card3

 

データの構成を確認する

df = pd.read_csv('Pandas_test' + '.csv', header=0) 
display(df.dtypes) 

id int64
date object 
数値 int64 
コメント object 
dtype: object 

 

ilocを使ってデータ取り出す操作

ilocは、配列に対して数値で選択する。

#2行目のデータ取り出す
a = df.iloc[1]

#2行目3列目のデータ取得
a = df.iloc[1,2]

 

locを使ってデータ取り出す操作

ilocとの違いは、数値ではなくカラム名などの文字列で指定します。

#dateの列だけ取得する
a = df.loc[:,"date"]

#2行目の「コメント」列の情報を取りたい場合の指定方法
a = df.loc[1,"コメント"]

 

データを更新(上書き)する

データの上書き方法は、df.locに2次元配列にデータを書き込む感覚で・・・。

 

#2行目4列目(コメント)のデータを更新する
df.loc[1,"コメント"] = "コメントの更新してみる"
display(df)

 

データを追加(insert)する

次にデータをinsertする方法を解説します。

カラムを追加する

この動きとしては、「コメント2」カラムが追加されて、1行目にデータが代入されます。

2行目以降のデータが無いところはNull値が入ります。

df.loc[0,"コメント2"] = "コメントカラム追加"

 

行を追加する

#形式は「変数 = pd.Series(データの配列, index = 横行の名前の配列)」
tmp_se = pd.Series( [ 7 , "2017-10-06", 3000, "card4", "なにか" ], index=df.columns )
df = df.append( tmp_se ,ignore_index=True)

 

Pandasで時間の比較をする(条件付きのデータ抽出含む)

まず時間データ抽出に失敗する例

a = df[ df["date"] == dt.datetime(2017, 10, 5)]

本来は dateカラムに「2017-10-05」のデータがあるのに結果は0件で抽出していないことになっている。

 

この原因は、csvからdf[“date”] にデータを読み込んだとき、object型でdatetime64に変換されていないからである。よって、時間比較前にdateカラムの情報をdatetime64に変換します。

変換方法は以下の通り。

#まずはdatetime64に変換する
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
print(df.dtypes)

#再び時間の比較
#今度は正しく、dateカラムが2017-10-5のデータの行を取得できます。
a = df[ df["date"]  == dt.datetime(2017,  10, 5)]
display(a)

 

オブジェクトの中身をみると以下のようになっていることがわかる。

id int64

date datetime64[ns]

数値 int64

コメント object

コメント2 object

dtype: object

 

最後にサンプルコードの全体を示します。

 

参考講座

最後にPythonの初学者に役立つ参考講座を紹介します。

■Udemyの「みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習」

プログラミング言語Pythonを使って、Pythonの基本構文から学び、機械学習まで学べるもの。数学も学べるためお得感があります!

サイバーセール中はUdemyコースが最大90%OFF▼

世界一コスパが安い!
Udemyはこちらから

 

まとめ

いかがですか?

Pandasは使い方がわかると簡単ですが、正しい知識がないとハマりやすいので注意が必要です。

特に、「iloc」「loc」の使い方は慣れていないと間違えやすいので、もしPandasの使い方になれていないと思ったら、一度立ち止まって、仕様を理解して使ったほうが良いです。

 

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア
最新情報をチェックしよう!