列を選ぶ
このレッスンでできるようになること。必要な列だけを取り出して、扱いやすい表に絞れるようになります。
売上データには6つの列があります。「商品ごとにいくら売れたか」を見たいだけなら、売上日も店舗もカテゴリも要りません。列を絞ると表が読みやすくなり、処理も軽くなります。
列を複数選ぶときは、角かっこの中に列名のリストを渡します。
Python
import pandas as pd
df = pd.read_csv("sales.csv")
picked = df[["商品名", "金額"]]角かっこが2重に見えますが、外側は「取り出す」記号、内側はリストの記号です。この形で返るのは DataFrame です。列が1つでも、リストで渡せば DataFrame のままになります。
渡した順番がそのまま列の順番になります。df[["金額", "商品名"]] と書けば金額が左に来ます。元の CSV の並びに縛られる必要はありません。
列名を1つでも間違えると KeyError になります。実際の分析では、列名の前後に空白が入っているせいで見た目は合っているのに落ちる、ということがよく起きます。そういうときは df.columns.tolist() で本当の列名を確かめてください。
不要な列を落としたいときは df.drop(columns=["数量"]) という書き方もあります。残したい列が多く、落としたい列が少ないときはこちらが短く済みます。どちらも元の df は変わりません。新しい表が返るだけです。変えたいなら df = df.drop(columns=["数量"]) のように代入し直します。この「元を書き換えない」性質は pandas 全体に共通するので、覚えておくと混乱が減ります。
要件
- 列名のリストを渡す形で商品名と金額の2列を取り出す
- columns に取り出した表の列名リストを入れる
- rows に行数を int で入れる
- records に to_dict("records") の結果を入れる
ヒント
編集 ゆめさく編集部