「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でええやん」と本気で思ってました。
でも実際は...
read_csv / read_excelで、既存のデータを爆速読み込み!
df(DataFrame)を覚えれば、集計・計算がイチコロ!
複数ファイルを横断するコピペ地獄から完全に脱出できる!
ただし、カラム名(列名)は一文字のズレも許されない繊細さがある!
これを知ってしまったら、もう手作業のExcel職人には戻れません。
私もあなたも、今日から「DataFrameを操る錬金術師」です!
あなたの周りにも、まだコピペ地獄で戦っている人はいませんか?
その方にぜひ、このパンダさんの愛称と「read」のdfマジックを教えてあげてください!
7.関連記事
いいなと思ったら応援しよう!
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!