Python学習【365日チャレンジ!】320日目のマスターU(@Udemy11)です。
知り合いの女性が、ばかでっかいくまのぬいぐるみを購入したという話を聞いたのですが、「なぜそんなものを購入する?」なんて思ったので、ちょっとネットで調べてみると、これが原因のようですね。
はじめしゃちょーが紹介するだけで、紹介された商品の売上が伸びるんだから、企業さんはテレビに広告出すよりYoutuberに案件を持っていったほうがコスパ高いですよね。
はじめしゃちょーレベルのYoutuberに商品紹介してもらうのっていくらくらい掛かるんでしょうね〜。
まー、このくまのぬいぐるみが案件なのかどうかはわかりませんが、この動画1本で間違いなく巨大くまのぬいぐるみの売上がこれまでないくらい上がっているのは間違いありません。
ほんの10年前にこんな状態になるなんて誰が想像できたでしょう。
ほんと、テクノロジーの進化ってすごいですよね。
それでは今日も、Python学習を始めましょう。
昨日の復習
昨日は、Pandas
の配列の基本的な操作を学習しました。
index
やcolumn
を指定して配列の値を抽出したり、指定した条件に合う値を抽出したりして、基本より少し進んだ処理をしました。
エクセルのような表で出力されるので、見た目もわかりやすく、配列をイメージしやすいのが特徴でした。
くわしくは昨日の記事をごらんください。
今日は、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
この配列をコピーするには、次のコードを使います。
df2 = df.copy()
これで、df2
にdf
と同じ配列が代入されました。
列を追加
コピーした配列df2
に新しい列を追加します。
df2['E'] = ['one', 'two', 'three', 'one', 'four']
df2
リストに値を追加するのと同じようなコードで列E
を追加することができます。
isin
isin
を使って、列E
を追加したdf2
の列E
にone
とtwo
が入っている行を抽出します。
df2[df2['E'].isin(['one', 'two'])]
列の追加2
Series
を使って1次元の配列を作って、それをdf2
に追加することもできます。
s = pd.Series([1, 2, 3, 4, 5], index=pd.date_range('20200101', periods=5))
df2['F'] = s
df2
shift
shift
を使えば指定した行だけ下にずらすことができます。
df2.shift(2)
2行分nan
が追加されて下に値がずれているのがわかるかと思います。
concat
concat
を使えば、最初に作ったdf
と列を追加したdf2
をくっつけることができます。
pd.concat([df2, df])
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
df3.groupby('D').sum()
最初に、1
から10
までの数字で4行3列の配列を作って、apple
とwin
の値が入ったD
列を追加して配列を出力しています。
次のコードでは、groupby
を使って、D
列の値をグループにして、他の列の値をsum
で合計した配列を出力しています。
まとめ
今日学習した配列の使い方は、ほんの一部だけなので、もっといろいろな使い方ができますので、Pandasの使い方については、下記のサイトをのぞいてみると、より具体的な使い方がわかるかと思います。
ほんと機能が多すぎて、どこから覚えればいいのかわからなくなってしまいますが、まずは、今日までに学習した基本的な使い方をマスターして、応用をこなしていけばいいかと思います。
実際問題として、いきなり実践に入ったほうが、データ分析に特化した使い方を早く覚えられるかもしれません。
とはいえ、基本も大切なので、バランスを保ちながらPython学習を継続していきましょう。
それでは、明日もGood Python!