SeriesとDataFrame
このレッスンでできるようになること。pandas が持つ2つの器、Series と DataFrame を区別して説明できるようになります。
pandas のデータは2種類しかありません。DataFrame は表そのもので、行と列があります。マイショップ・チェーンの売上CSVを読み込むと DataFrame になります。Series は1列だけの縦のデータです。DataFrame から1つの列を取り出すと Series になります。
Python
import pandas as pd
df = pd.read_csv("sales.csv")
amounts = df["金額"]df["金額"] は角かっこに列名を1つ書く形で、返ってくるのは Series です。ここで角かっこを二重にして df[["金額"]] と書くと、1列だけの DataFrame が返ります。見た目は似ていますが型が違うので、混ざると後で困ります。「1つの列そのものが欲しいなら1重、表の形のまま欲しいなら2重」と覚えてください。
Series にはインデックスが付いています。読み込んだ直後は 0, 1, 2 と番号が振られています。DataFrame から列を取り出しても、元の行番号がそのまま付いてきます。この番号があるおかげで、複数の Series を計算しても行がずれません。
型を確かめるには type() を使います。組み込みの関数なので type(amounts).__name__ と書くと "Series" という文字列が取れます。分析中に「これは Series だったか DataFrame だったか」と迷ったら、この確認が早いです。
Series には合計や平均、最小値を求めるメソッドが最初から付いています。amounts.sum() や amounts.mean()、amounts.min() がそれです。DataFrame にも同じ名前のメソッドがありますが、こちらは列ごとに計算した結果を返すので、返る形が変わります。器の違いを意識すると、返り値の形に驚かなくなります。たとえば print(amounts.min()) と書くと、金額の最小値を確認できます。この演習では、金額の列を2つの取り出し方で取り、それぞれの型名を確かめます。
要件
- df["金額"] の型名を one に入れる
- df[["金額"]] の型名を two に入れる
- 型名は type(x).name で文字列にする
- Series 側の合計を int にして total に入れる