Pythonで文字列の先頭にゼロを追加する方法|format()とrjust()の使い方
Pythonでは、データを見やすく整形したり、固定桁数の値を計算の入力として扱いたい場合などに、文字列の先頭へゼロ(先行ゼロ/ゼロパディング)を付け加えたいことがあります。本記事では、そのような場面で役立つ代表的な2つの方法「format()」と「rjust()」を、具体的なコード例とともに解説します。
format()メソッドを使う方法
まずはformat()関数を使う方法です。ここではpandasのDataFrameを用意し、ゼロを追加したい列に対してformat関数を適用します。lambda式を組み合わせることで、列内のすべての要素に同じ処理を繰り返し適用できます。
コード例
import pandas as pd
string = {'Column': ['HOPE', 'FOR', 'THE', 'BEST']}
dataframe = pd.DataFrame(string)
print("given column is ")
print(dataframe)
dataframe['Column'] = dataframe['Column'].apply(lambda i: '{0:0>10}'.format(i))
print("\n leading zeros is")
print(dataframe)実行結果
上記のコードを実行すると、以下のような出力が得られます。
given column is Column 0 HOPE 1 FOR 2 THE 3 BEST leading zeros is Column 0 000000HOPE 1 0000000FOR 2 0000000THE 3 000000BEST
フォーマット指定子 {0:0>10} は、「全体を10桁にして右寄せし、余った部分を0で埋める」という意味です。元の文字列が10文字未満の場合、足りない分だけ先頭にゼロが自動的に補われます。
rjust()メソッドを使う方法
続いて、文字列メソッドの rjust()(右寄せ)を使う方法です。rjust() は、引数で指定した全体の桁数に合わせて文字列を右寄せにし、左側の余白を指定した文字で埋めます。この例では、先頭に3つのゼロを追加しています。追加するゼロの数は変数を使って動的に変更することも可能です。
コード例
val = '98.6 is normal body temperature'
print("The given string is :\n " + str(val))
# 追加するゼロの個数
i = 3
result = val.rjust(i + len(val), '0')
print("adding leading zeros to the string is :\n" + str(result))実行結果
上記のコードを実行すると、以下のような出力が得られます。
The given string is : 98.6 is normal body temperature adding leading zeros to the string is : 00098.6 is normal body temperature
まとめ
Pythonで文字列の先頭にゼロを追加するには、主に以下の方法があります。
- format():フォーマット指定子で桁数や埋め文字を柔軟に制御できる。DataFrameの各要素へは lambda 式と組み合わせて適用するのが便利。
- rjust():右寄せしながら指定した文字でパディングできるシンプルな文字列メソッド。桁数を動的に指定しやすい。
- zfill():「str.zfill(桁数)」と書くだけでゼロ埋めが完了する、最も手軽な方法。
用途に応じてこれらを使い分けることで、IDや日付、数値データなどを一定の桁数に揃えた文字列として扱うことができます。
-
Pythonで16進数の文字列を10進数に変換する方法を解説
この記事では、16進数の文字列を10進数に変換する問題の解決策について詳しく解説します。課題の概要16進数形式の文字列が与えられたとき、それを対応する10進数の値に変換することを目標とします。例えば、16進数の「F」は10進数では「15」に相当します。この問題には主に2つのアプローチがあります。力ずく(ブルートフォース)な手法:int関数を使った明示的な型変換組み込みモジュールを活用する手法:astモジュールのliteral_eval関数を使用方法1:int関数を使った変換最もシンプルで一般的な方法は、Pythonの組み込み関数であるint()を利用するものです。この関数は2つの引数を受け取り
-
PythonでIPアドレスの先頭ゼロを削除する方法を解説
このチュートリアルでは、IPアドレスから先頭の余分なゼロ(先行ゼロ)を削除するPythonプログラムを作成します。具体的には、255.001.040.001 のようなIPアドレスを 255.1.40.1 の形式に変換する処理を実装していきます。 処理の流れ 以下の手順に沿ってプログラムを組み立てます。 対象となるIPアドレスを文字列として初期化する split() 関数を使い、ピリオド(.)でIPアドレスを分割する 分割した各部分を int 型に変換する(数値化することで先頭のゼロが自動的に除去される) 結合できるように、各部分を再び str 型に戻す join() メソッドですべての部分を