#37 品質リスクを分析する準備「データ・ラングリング」、チャレンジ AI×100業務(製造業)
データラングリング(またはデータマンジング)とは、生のデータを収集し、それを分析や機械学習モデルで利用可能な形式に変換・整形するプロセス全体を指します。
ラングリングが、AIと会話(プロンプト)によって実現すれば魅力的ですが*、実際の実務では、ほぼほぼ決まったcsvファイルの解析にとどまります。従って、数値に閾値を定め、OK or NGなどと変換できれば、まず第一歩ですが進むことができます。
*Exploratory, Inc.の「Exploratory」では可能です。
セミナー #145 - Exploratory v12 - パラダイムシフト with AI プロンプト
前回同様ChatGPTを会話しつつ、Pythonにてコードを生成し分析していきます。
*それでは、スタートです。
*執筆者は以下を参照してください。
使ったツール・準備したこと
ChatGPT 4o
Visual Studio Code環境下でのPython
やってみたこと|コード・ステップ紹介
実行した内容の簡単な流れ
ここでは、csvファイルを呼び出して、ある列(今回はY)に閾値を定め、小さい場合には「low」それ以外に「normal」とします。
元ファイルは以下。

プロンプトは下のようにしました。
データ・ラングリングをしたいのですが、csvファイルを読み取り、ある列の値が●●以下なら「low」それ以外は「normal」と列を加える操作のコードを生成してください。


あるデータベースなど、特定のデータを解析する場合は決まったデータ変換なので上記でいいですが、使用シーン、データによってはExploratory, Inc.の「Exploratory」の価格は良心的なので時と場合によります。
今後の展開・アイデア
次回取り組みたいこと;
・Difyを触ります。
*今回のコードです。
import pandas as pd
import tkinter as tk
from tkinter import filedialog, simpledialog, messagebox
# --- GUIからしきい値と列を指定して処理する関数 ---
def process_csv_with_threshold():
# ファイル選択ダイアログ
file_path = filedialog.askopenfilename(title="CSVファイルを選択", filetypes=[("CSV files", "*.csv")])
if not file_path:
return
# CSV読み込み
df = pd.read_csv(file_path)
df.columns = df.columns.str.strip()
# 列名のリストを取得
columns = df.columns.tolist()
# 対象列を入力(ポップアップ)
target_column = simpledialog.askstring("列名の入力", f"分類対象の列を指定してください(例: {columns[0]})")
if target_column not in df.columns:
messagebox.showerror("エラー", f"指定した列が見つかりません: {target_column}")
return
# しきい値を入力(ポップアップ)
try:
threshold = float(simpledialog.askstring("しきい値の入力", "lowとnormalを分ける数値しきい値を入力してください"))
except:
messagebox.showerror("エラー", "数値を正しく入力してください")
return
# 新しい列を追加
df['value_level'] = df[target_column].apply(lambda x: 'low' if x <= threshold else 'normal')
# 保存先パスの作成
save_path = file_path.replace(".csv", "_with_level.csv")
df.to_csv(save_path, index=False)
# メッセージ表示
messagebox.showinfo("完了", f"処理完了!ファイルを保存しました:\n{save_path}")
# --- GUIウィンドウの初期化 ---
root = tk.Tk()
root.withdraw() # メインウィンドウは表示しない
process_csv_with_threshold()
