【Python】PandasのDataFrameで列の文字列を大文字に変換する方法
このチュートリアルでは、PandasのDataFrame(データフレーム)内の特定の列(例えば名前の列)をすべて大文字に変換する方法を解説します。主な方法は2つあり、それぞれコード例と実行結果とともに紹介します。
方法1:str.upper() を使う方法
Pandasでは、文字列型(object型)の列に対して .str アクセサを使うことで、Python標準の文字列メソッドを各要素に一括適用できます。大文字への変換には str.upper() を使用します。
コード例
# pandasパッケージをインポート
import pandas as pd
# DataFrame用のデータ
data = {
'Name': ['Hafeez', 'Aslan', 'Kareem'],
'Age': [19, 21, 18],
'Profession': ['Developer', 'Engineer', 'Artist']
}
# DataFrameを作成
data_frame = pd.DataFrame(data)
# 変換前のDataFrameを表示
print('---------------------Before-------------------')
print(data_frame)
print()
# Name列の文字列を大文字に変換
data_frame['Name'] = data_frame['Name'].str.upper()
# 変換後のDataFrameを表示
print('---------------------After-------------------')
print(data_frame)実行結果
上記のプログラムを実行すると、次のような出力が得られます。
---------------------Before-------------------
Name Age Profession
0 Hafeez 19 Developer
1 Aslan 21 Engineer
2 Kareem 18 Artist
---------------------After-------------------
Name Age Profession
0 HAFEEZ 19 Developer
1 ASLAN 21 Engineer
2 KAREEM 18 ArtistName列の値がすべて大文字(HAFEEZ、ASLAN、KAREEM)に変換されていることが確認できます。
方法2:apply() を使う方法
同じ処理は、DataFrameの apply() メソッドを使っても実現できます。apply() に関数やラムダ式を渡すことで、列の各要素に対して任意の処理を適用できます。
コード例
# pandasパッケージをインポート
import pandas as pd
# DataFrame用のデータ
data = {
'Name': ['Hafeez', 'Aslan', 'Kareem'],
'Age': [19, 21, 18],
'Profession': ['Developer', 'Engineer', 'Artist']
}
# DataFrameを作成
data_frame = pd.DataFrame(data)
# 変換前のDataFrameを表示
print('---------------------Before-------------------')
print(data_frame)
print()
# apply()でName列の各要素を大文字に変換
data_frame['Name'] = data_frame['Name'].apply(lambda name: name.upper())
# 変換後のDataFrameを表示
print('---------------------After-------------------')
print(data_frame)実行結果
---------------------Before-------------------
Name Age Profession
0 Hafeez 19 Developer
1 Aslan 21 Engineer
2 Kareem 18 Artist
---------------------After-------------------
Name Age Profession
0 HAFEEZ 19 Developer
1 ASLAN 21 Engineer
2 KAREEM 18 Artistこちらもstr.upper()と同様に、Name列がすべて大文字に変換されました。
補足:その他の便利な文字列変換メソッド
用途に応じて、以下のメソッドも活用できます。
- str.lower():すべて小文字に変換
- str.capitalize():先頭の文字だけ大文字に変換
- str.title():各単語の先頭だけ大文字に変換
また、大量のデータを扱う場合は、ベクトル化された str.upper() の方が apply() より高速に動作する傾向があるため、単純な文字列変換には str.upper() の使用をおすすめします。
まとめ
PandasのDataFrameで列の文字列を大文字に変換するには、str.upper() または apply() メソッドを使用します。どちらの方法でも同じ結果が得られますが、シンプルさとパフォーマンスの観点から str.upper() が一般的です。このチュートリアルについて不明な点がある場合は、コメント欄でお気軽に質問してください。
-
【Python】Pandasでインデックス名を変更する方法 – rename()メソッドの使い方
Pandasでインデックス名を変更するには、index.rename()メソッドを使用します。まず、必要なライブラリをインポートしましょう。 import pandas as pd 続いて、Pandasのインデックスを作成します。nameパラメータに「Transport」を指定することで、インデックスに名前を付けています。 index = pd.Index(['Car','Bike','Airplane', 'Ship','Truck','Suburban'], name ='Transp
-
Python・Pandas DataFrameでCSV読み込み時に列名を明示的に指定する方法
PandasでCSVファイルを読み込む際、元のファイルにヘッダー(列名)が含まれていないケースはよくあります。そのような場合、read_csv()メソッドのnamesパラメータを使えば、列名を明示的に指定できます。この記事では、具体的な手順をサンプルコードと実行結果とともに解説します。 namesパラメータによる列名の指定 read_csv()メソッドのnamesパラメータに列名のリストを渡すことで、ヘッダーを持たないCSVファイルに任意の列名を割り当てられます。例として、Microsoft Excelで開いた次のようなヘッダーなしのCSVファイルを想定します。 このファイルを読み込む