Series と DataFrame の astype メソッド
pandas の Series/DataFrame オブジェクトのデータ型を変換するには、astype()
メソッドを使用します。
Series
の astype()
メソッドは、指定したデータ型に変換された新しい Series
オブジェクトを返します。
DataFrame
の astype()
メソッドを使用すると、複数カラムのデータ型をまとめて変換することができます。
もちろん、次のように DataFrame
から個々の列を Series
として取り出してから変換するのもありです。
df["列"] = df["列"].astype("float64")
整数にするときの切り捨て/切り上げ/四捨五入
astype()
メソッドを使って浮動小数点数型 (float
) のデータを整数型 (int
) のデータに変換する場合、デフォルトでは少数点数以下は切り捨てられます。
少数点数以下を切り上げたり、四捨五入したい場合は、先に Series
オブジェクトに対して、np.ceil()
や np.round()
などの NumPy 関数を適用しておきます。
df["列"] = df["列"].astype(int) # 切り捨て(デフォルト)
df["列"] = np.floor(df["列"]).astype(int) # 切り捨て(同上)
df["列"] = np.ceil(df["列"]).astype(int) # 切り上げ
df["列"] = np.round(df["列"]).astype(int) # 四捨五入
具体例
次の例では、サンプルの DataFrame を作成して、その中の数値カラムの型を変換しています。