見出し画像

「Excelでええやん!」って思ってた私が、Python DataFrameに恋した話 #64

1.最初の「なんでやねん!」

Pythonの学習を始めたとき、最初に出会った呪文がこれでした。

import pandas as pd

df = pd.DataFrame({
    "名前": ["太郎", "花子", "次郎"],
    "年齢": [25, 30, 22]
})

……え、なんでわざわざコードで表を手打ちしてんの!?

「いやいや、このままならExcelでええやん!」って心の中で全力ツッコミですよ。

ゴールは、目の前にあるExcelやCSVのデータをサクッと読み込んで、サクッと分析することのはずなのに!

マウスでポチポチ入力する方が速いし、セルの色だって塗れる。
当時の私にとって、これは「データを手打ちする謎の遠回りツール」にしか見えませんでした。

この時点では、pandasの真の恐ろしさ(便利さ)をまったく理解していなかったんです。


2.衝撃の瞬間:「read」の登場とExcel超え

そう思ってしばらく「Excel原理主義者」としてPythonを遠ざけていたんですが、ある日、意を決してちゃんと調べてみたら、やっと見つかったんですよ。

「別に手打ちしなくても、既存のExcelやCSVファイルを読み込めるぞ?」

つまり、Pythonが本当にやりたかったのは、これ👇だったんです。

import pandas as pd

# CSVファイルを読み込み
df = pd.read_csv("sales.csv") # 👈これ!

# Excelファイルを読み込み
df2 = pd.read_excel("sales.xlsx") # 👈そしてこれ!

はい、来ました!これぞ、私が本当にやりたかったこと

「ぇ? readって使うとええの?」という衝撃。

この瞬間、pandas=DataFrameの世界は、私の目の前で一気に「データを爆速で調理するExcel超えツール」に覚醒しました。

そう、pandasの真の役割は、
外部のデータを読み込んで調理するための「万能シェフ」
だったんです。

  • pd.read_csv("格納先+ファイル名")で、CSVの扉を開ける

  • pd.read_excel("格納先+ファイル名")で、Excelの宝箱を開ける

この瞬間に、パンダ(pandas)が、急に可愛くなりました。

3. dfって何やねん問題(愛称の謎)

「read」を理解したのも束の間、すぐに次の壁がありました。
「df」ですよ、df!

みんな当然のように「df」って書くけど、何それ?何の略?

私:「dfって何の略ですか?」
後輩:「データフレームっすね。定義してるんですよ」
私:「……定義ってなんだよw 日本語で頼む」

結局わかったのは、「DataFrameの愛称がdf」ってこと。
要は「この読み込んだデータに対して、今から『df』っていう名前を付けるね!」っていう、プログラミング界の命名式だったんです。

つまり、こう👇書くのは...


df1 = pd.read_csv("sales_1月.csv") # 1月のデータちゃん!
df2 = pd.read_csv("sales_2月.csv") # 2月のデータちゃん!
df3 = pd.read_csv("sales_3月.csv") # 3月のデータちゃん!

「1月のデータフレームは、『df1』って呼ぶね!」という、ただの愛称付けだったんですね。

慣れたらただの略語。
でも、最初はホント謎でした…。

やっと理解した!こう書くのね!
これでスタートラインに立てた結果、やれることを理解。

4.横断の魔力:コピペ地獄からの解放 

スタートラインに立てた結果、見えてきた世界が変わりました。

「ぇ?計算イチコロ?」
「複数のファイルを横断してコピペ戦しなくていいの?w」

Excelで複数ファイルを開いて、集計して、また別のファイルを開いて閉じて……。
もうなんだろ。

滑る(ミス)の不安を抱えながら、江頭2:50の「ドーン!」をずっとやってる感じですよ。

しかし、dfマジックを攻略すると一瞬でした。

  • 月ごとの合計、平均、最大値をコード一発で。

  • 複数のデータフレームをガッチャンコ(結合)して、全期間の計算も一瞬。

パンダさんはすごかった。

複数のファイルを処理するあの手間が、まるでなかったかのように一瞬で終わるんです。

1.dfマジック:コピペ地獄を終わらせる呪文

2. 集計・計算を一瞬で終わらせる呪文

ExcelでSUM関数をチマチマやっていた作業が、一発で終わります。

# 「売上」列の合計を秒速で出す!
print(df["売上"].sum())

# 「利益」列の平均値を瞬時に計算!
print(df["利益"].mean())

# 最大/最小の「数量」をサクッと知りたい!
print(df["数量"].max()) 
print(df["数量"].min())

3. ファイルを「ガッチャンコ」合体させる呪文

月別、支店別のファイルを縦に結合し、一つの巨大なDataFrameにします。コピペ、もういらない!

# 1月、2月、3月のデータちゃんを一瞬で縦に結合!
all_data = pd.concat([df1, df2, df3])

# 合体したデータの最初の数行を見てみる
print(all_data.head())

4. 条件を指定してデータを絞り込む呪文

「これって、〇〇のデータだけ見たいんだけど?」という要望も、フィルタ機能を使わず一発で解決!

# 「太郎」さんのデータだけを抽出!
taro_data = df[df["名前"] == "太郎"]

# 「年齢」が30歳以上の人だけをピックアップ!
adult_data = df[df["年齢"] >= 30]

この時、確信しました。
「私はもう、手作業Excel職人じゃない!データを操る錬金術師だ!」と!

5. ただし、カラムはわがまま

計算できることを知った後、次に待ち受けていたのがカラムさんとの出会いです。

「カラム(列名)」、やつはほんとわがまま。

たとえば、1月ファイルの列名が「商品名」なのに、2月ファイルで「アイテム名」になってると、パンダさんはぷいっとそっぽを向きます。

「列名がちょっとズレてると、パンダさんとの恋は即・破綻する!」

つまり、この恋(自動処理の成立)を成功させるためには、元のファイルの形式と並びが、一文字たりともズレてないことが絶対条件なんです。

「Pythonの爆速処理を活かすには、手元のデータを完璧に綺麗に整える必要がある」—これがデータ分析の奥深さなんですね。

愛するパンダさんの機嫌を損ねないために、私はデータ整理の鬼になることを誓いました。


6.まとめ:もう手作業Excel職人には戻れません

最初は「Pythonで表を手打ちするなんて、Excelでええやん」と本気で思ってました。

でも実際は...

  1. read_csv / read_excelで、既存のデータを爆速読み込み

  2. df(DataFrame)を覚えれば、集計・計算がイチコロ

  3. 複数ファイルを横断するコピペ地獄から完全に脱出できる!

  4. ただし、カラム名(列名)は一文字のズレも許されない繊細さがある!

これを知ってしまったら、もう手作業のExcel職人には戻れません。
私もあなたも、今日から「DataFrameを操る錬金術師」です!

あなたの周りにも、まだコピペ地獄で戦っている人はいませんか?
その方にぜひ、このパンダさんの愛称と「read」のdfマジックを教えてあげてください!

7.関連記事

いいなと思ったら応援しよう!

KITAcore|キタコレ@ログプレイヤー よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!