Pythonの関数を使ってデータを整形・変換する方法集!初心者でもわかるデータ加工テクニック
生徒
「Pythonでデータをきれいにしたり、形を変えたりしたいんですけど、どうやってできますか?」
先生
「データを整形したり変換するのはとても大事な作業です。Pythonにはそうした作業を簡単にするための関数がたくさん用意されていますよ。」
生徒
「具体的にどんな関数を使うんですか?やさしく教えてください!」
先生
「はい、これから基本からわかりやすく説明していきますね!」
1. データ整形・変換とは?
データ整形・変換とは、データの形や内容をわかりやすくしたり、別の形に変えたりすることです。例えば、文字の大きさをそろえたり、数字のリストを文字列にしたりすることが該当します。
Pythonには文字列やリスト、辞書など色々なデータ型があり、それぞれを扱う関数も豊富です。ここではよく使う変換の例を紹介します。
2. 文字列の変換と整形に使う関数
文字列はデータの中でもよく扱うものです。Pythonには文字列を整える便利な関数があります。
2-1. 大文字・小文字に変換する
upper()は文字をすべて大文字に、lower()はすべて小文字に変換します。
text = "Python Programming"
print(text.upper()) # PYTHON PROGRAMMING
print(text.lower()) # python programming
2-2. 文字列の先頭や末尾の空白を削除する
strip()は文字列の両端から空白や改行を取り除きます。
text = " hello world \n"
print(text.strip()) # "hello world"
3. データ型の変換に使う関数
Pythonではデータ型を変換することで、さまざまな処理が可能になります。代表的な変換関数を紹介します。
3-1. 数字と文字列の変換
int()は文字列を整数に、str()は数字を文字列に変換します。
num_str = "123"
num = int(num_str) # 文字列 → 整数
print(num + 1) # 124
num2 = 456
num2_str = str(num2) # 整数 → 文字列
print(num2_str + " is a number") # "456 is a number"
3-2. リストやタプル、辞書の変換
list()でタプルをリストに、tuple()でリストをタプルに変換できます。
t = (1, 2, 3)
lst = list(t)
print(lst) # [1, 2, 3]
lst2 = [4, 5, 6]
t2 = tuple(lst2)
print(t2) # (4, 5, 6)
dict()はキーと値のペアから辞書を作ります。
pairs = [('a', 1), ('b', 2), ('c', 3)]
d = dict(pairs)
print(d) # {'a': 1, 'b': 2, 'c': 3}
4. 関数を使ったデータの整形・変換の応用例
次は、関数を使って複数のデータをまとめて変換する例です。map()関数はリストなどの要素に対して一括で関数を適用します。
numbers_str = ['1', '2', '3', '4']
numbers_int = list(map(int, numbers_str))
print(numbers_int) # [1, 2, 3, 4]
このように、map()は「リストの中の文字列をすべて整数に変える」といった処理を簡単にします。
4-1. フィルター処理
filter()は条件に合うものだけを抽出する関数です。
numbers = [10, 15, 20, 25, 30]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [10, 20, 30]
ここでは偶数だけを取り出しています。
5. 文字列のフォーマットで整形する
数値や文字列を特定の形に変えて表示したいときに使うのがformat()メソッドやf文字列(フォーマット文字列)です。
name = "Alice"
age = 30
# format()を使う例
print("名前は{}で、年齢は{}歳です。".format(name, age))
# f文字列を使う例(Python3.6以降)
print(f"名前は{name}で、年齢は{age}歳です。")
このように変数の値を文字列の中に簡単に入れられます。
6. 文字列の分割と結合
データを分割したり、逆にくっつけたりするときはsplit()とjoin()を使います。
6-1. split()で文字列をリストに分割
text = "apple,banana,cherry"
fruits = text.split(",")
print(fruits) # ['apple', 'banana', 'cherry']
6-2. join()でリストの文字列をくっつける
fruits = ['apple', 'banana', 'cherry']
text = ",".join(fruits)
print(text) # "apple,banana,cherry"
7. 実践!複数の関数を組み合わせてデータを変換する
例えば、以下のような処理ができます。
- 文字列のリストをすべて小文字にして
- 空白を取り除き
- 重複を除く
data = [' Apple ', 'banana', 'APPLE', 'Banana ', 'cherry ']
# 1. 空白を除去して小文字に変換
cleaned = list(map(lambda x: x.strip().lower(), data))
# 2. 重複を除去するためにsetに変換
unique = set(cleaned)
print(unique) # {'apple', 'banana', 'cherry'}
このように関数を組み合わせることで、データをきれいに整えられます。
8. Pythonでデータを整形・変換するコツ
・まずは小さな関数で一つずつ変換を試す
・map()やfilter()で効率よく処理
・文字列のメソッドを活用して簡単に整形
・複数の処理は順番に組み合わせて使う