PythonのPandasでよく使用する機能まとめ

Pandasはデータ分析が可能なライブラリで、csvやexcelの読み書きやグラフの作成などが可能です。今回は私が業務でよく使用している機能を、実現したい項目ごとにチート風でまとめてみました。他にも便利な機能があればその都度追加したいと思います。

ファイル・フォルダ入出力

フォルダにある全てのcsvのパスを読み込む

import glob

TARGET_FILES = glob.glob(f'{target_folder}/*.csv')

複数のファイルを個別に処理する

for index, path in enumerate(TARGET_FILES):
    # ここに処理を書く

パスからファイル名を取得する

import os
file_name = os.path.basename(path)

DataFrame

DataFrameを作成する

csvを読み込む

import pandas as pd

df = pd.read_csv(path)

excelをシートを指定して読み込む

df = pd.read_excel(path, sheet_name="sheet1")

excelを全シート読み込む

df = pd.read_excel(path, sheet_name=None)

リストを列名としたDataFrameを作成する

columns = [
    "itemA",
    "itemB",
    "itemC",
]
df = pd.DataFrame(columns=columns)
df = df[columns]

ユニークidをDataFrameに追加する

import uuid

id_list = []
for j in range(len(df)):
    id_list.append(uuid.uuid4())
df.insert(0, "id", id_list)

列を指定し、空欄の行を削除する

df = df[df["列名を記入"] != ""]

列ごとの処理を一括実行する

ある列に一括で代入

df["itemA"] = "apple"
df["itemB"] = 1

単純に代入するだけでOK

ある列に一括で関数を実行

def HogeDouble(text:str):
    if text == text:
        return text + text

df["itemA"] = df["itemA"].map(HogeDouble)

Dataframeを行ごとに取り出す

for i, row in df.iterrows():
    #行ごとの処理を記述

Dataframeを保存する

CSVに書き出す

path = "./output/hoge.csv"
df.to_csv(path)

excelに書き出す

path = "./output/hoge.xlsx"
df.to_excel(path)

シートを複数含めてexcelに書き出す

path = "./output/hoge.xlsx"
with pd.ExcelWriter(path) as writer:
        df.to_excel(writer, sheet_name="sheet1")
        df2.to_excel(writer, sheet_name="sheet2")

スクレイピング

今回はライブラリとしてBeautifulSoupを使用します。

あるURLのHTMLを取得する

from bs4 import BeautifulSoup
import requests

r = requests.get(url)
soup = BeautifulSoup(r.content, 'lxml')
タイトルとURLをコピーしました