Python Pandasの基本的な使い方

Python学習【365日チャレンジ!】320日目のマスターU(@Udemy11)です。

知り合いの女性が、ばかでっかいくまのぬいぐるみを購入したという話を聞いたのですが、「なぜそんなものを購入する?」なんて思ったので、ちょっとネットで調べてみると、これが原因のようですね。

はじめしゃちょーが紹介するだけで、紹介された商品の売上が伸びるんだから、企業さんはテレビに広告出すよりYoutuberに案件を持っていったほうがコスパ高いですよね。

はじめしゃちょーレベルのYoutuberに商品紹介してもらうのっていくらくらい掛かるんでしょうね〜。

まー、このくまのぬいぐるみが案件なのかどうかはわかりませんが、この動画1本で間違いなく巨大くまのぬいぐるみの売上がこれまでないくらい上がっているのは間違いありません。

ほんの10年前にこんな状態になるなんて誰が想像できたでしょう。

ほんと、テクノロジーの進化ってすごいですよね。

それでは今日も、Python学習を始めましょう。

昨日の復習

昨日は、Pandasの配列の基本的な操作を学習しました。

indexcolumnを指定して配列の値を抽出したり、指定した条件に合う値を抽出したりして、基本より少し進んだ処理をしました。

エクセルのような表で出力されるので、見た目もわかりやすく、配列をイメージしやすいのが特徴でした。

くわしくは昨日の記事をごらんください。

今日は、Pandasの配列に行や列の値を追加したり、まとめたりする応用的な使い方を学習します。

copy

昨日までPandasで配列オブジェクトdfを作っていましたが、dfをコピーして、新たな配列オブジェクトdf2を作ってみます。

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(1, 50, (5, 4)), index=pd.date_range('20200101', periods=5), columns=['A', 'B', 'C', 'D'])
df

Python Pandas配列の応用的な使い方

この配列をコピーするには、次のコードを使います。

df2 = df.copy()

これで、df2dfと同じ配列が代入されました。

列を追加

コピーした配列df2に新しい列を追加します。

df2['E'] = ['one', 'two', 'three', 'one', 'four']
df2

Python Pandas配列の応用的な使い方

リストに値を追加するのと同じようなコードで列Eを追加することができます。

isin

isinを使って、列Eを追加したdf2の列Eonetwoが入っている行を抽出します。

df2[df2['E'].isin(['one', 'two'])]

Python Pandas配列の応用的な使い方

列の追加2

Seriesを使って1次元の配列を作って、それをdf2に追加することもできます。

s = pd.Series([1, 2, 3, 4, 5], index=pd.date_range('20200101', periods=5))
df2['F'] = s
df2

Python Pandas配列の応用的な使い方

shift

shiftを使えば指定した行だけ下にずらすことができます。

df2.shift(2)

Python Pandas配列の応用的な使い方

2行分nanが追加されて下に値がずれているのがわかるかと思います。

concat

concatを使えば、最初に作ったdfと列を追加したdf2をくっつけることができます。

pd.concat([df2, df])

Python Pandas配列の応用的な使い方

df2は、dfに2列追加しているので、dfは2行分データがありませんが、自動的にnanを補填してくれます。

groupby

groupbyは、指定した列で同じ値を持った行の値を合計してまとめることができます。

df3 = pd.DataFrame(np.random.randint(1, 10, (4, 3)), columns=['A', 'B', 'C'])
df3['D'] = ['apple', 'win', 'apple', 'win']
df3

Python Pandas配列の応用的な使い方

df3.groupby('D').sum()

Python Pandas配列の応用的な使い方

最初に、1から10までの数字で4行3列の配列を作って、applewinの値が入ったD列を追加して配列を出力しています。

次のコードでは、groupbyを使って、D列の値をグループにして、他の列の値をsumで合計した配列を出力しています。

まとめ

今日学習した配列の使い方は、ほんの一部だけなので、もっといろいろな使い方ができますので、Pandasの使い方については、下記のサイトをのぞいてみると、より具体的な使い方がわかるかと思います。

ほんと機能が多すぎて、どこから覚えればいいのかわからなくなってしまいますが、まずは、今日までに学習した基本的な使い方をマスターして、応用をこなしていけばいいかと思います。

実際問題として、いきなり実践に入ったほうが、データ分析に特化した使い方を早く覚えられるかもしれません。

とはいえ、基本も大切なので、バランスを保ちながらPython学習を継続していきましょう。

それでは、明日もGood Python!