クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

欠けた値と間違った値を直す

このレッスンのあとで: データの中の、欠けた値と間違った値を見つけて直すことができる。

45分のレッスンコマンドなし

売上の合計が合いません

コンビニチェーンの本部で、昨日の売上を集計しました。ところが、店長会議の資料と数字が合いません。

調べると、売上が空の店がありました。店名の後ろに空白が入った行もありました。集計の前に、データを直す必要があったのです。

このレッスンのゴール

メモ

データの中の、欠けた値と間違った値を見つけて直すことができる。

キーワード

ことばいみれい
欠損値入っているはずなのに、ない値です。""
NonePythonで「値がない」を表すものです。None
異常値ありえない値です。-5000
データクレンジング集計の前に、データを直すことです。
strip文字の前後の空白を取る命令です。" 梅田店".strip()

学生が入力するセルは、このプレビューでは空白です。

欠けた値を先に数えます

店舗のシステムが止まると、売上が届かないことがあります。そのとき、値は空の文字 "" か、None になります。

まず、欠けた行が何件あるかを数えます。件数が分かれば、店舗に問い合わせるか、集計から外すかを決められます。

直す前に数えるのが、現場の基本です。

売上がない店を探す

コード: python
# 各店舗から届いた、昨日の売上です。
rows = [
    {"store": "梅田店", "sales": "84000"},
    {"store": "難波店", "sales": ""},
    {"store": "天王寺店", "sales": "91500"},
    {"store": "京橋店", "sales": None},
]

missing = 0
for row in rows:
    # 空の文字と None は、どちらも「値がない」という意味です。
    if row["sales"] == "" or row["sales"] is None:
        print("売上がありません:", row["store"])
        missing = missing + 1
print("欠けている行:", missing, "件")

# 「本町店」の行を、売上を "" にして足してみましょう。

よくある間違い

注意

空の売上は0円にすればよい、と考える人が多いです。でも0円は「一つも売れなかった」という本当の値です。空を0円にすると、合計も平均も下がります。値がないときは、集計から外すか、店舗に確認します。

間違った値は、形を直すか確認します

値が入っていても、そのままでは使えないことがあります。

「梅田店 」のように空白があると、Pythonは「梅田店」と別の店だと考えます。strip() で空白を取ります。

"84,000" はカンマ付きの文字なので、計算できません。カンマを取って int() で数にします。

マイナスの売上は、ありえない値です。勝手に直さず、店舗に確認します。

直す前と直したあと

届いた値問題直し方直したあと
"梅田店 "後ろに空白strip()"梅田店"
"84,000"カンマ付きの文字カンマを取り int()84000
"-5000"ありえない値店舗に確認集計から外す
""値がない店舗に確認集計から外す

学生が入力するセルは、このプレビューでは空白です。

店名と売上を直す

コード: python
rows = [
    {"store": "梅田店 ", "sales": "84,000"},
    {"store": "難波店", "sales": "-5000"},
    {"store": " 天王寺店", "sales": "91500"},
]

clean = []
for row in rows:
    # 前後の空白を取ります。空白があると別の店に見えるからです。
    store = row["store"].strip()
    # カンマを取ってから、文字を数に変えます。
    sales = int(row["sales"].replace(",", ""))
    if sales < 0:
        print("店舗に確認します:", store, sales)
    else:
        clean.append({"store": store, "sales": sales})

print(clean)

# 難波店の売上を "62,300" に直して、もう一度実行しましょう。

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。