LoginSignup
0
1

More than 1 year has passed since last update.

PythonのSeriesのfloat64をint64に変換する方法

Last updated at Posted at 2023-05-14

はじめに

Pythonのデータ分析ライブラリであるpandasでは、Series内のデータタイプを変換する方法が用意されています。本記事では、float64からint64に変換する方法と、NaN(非数値)や無限大(inf)などの非有限値が含まれているときの対処法について紹介します。

基本的な変換方法

pandasのSeriesに対して、データタイプを変更するにはastype()関数を使います。以下に、float64からint64に変換する基本的な方法を示します。

import pandas as pd

# float64のSeriesを作成
data = pd.Series([1.0, 2.5, 3.7, 4.2])

# float64からint64に変換
int_data = data.astype('int64')

print(int_data)

このコードは、float64のSeriesをint64に変換し、結果を表示します。ただし、この方法では、小数部分が切り捨てられることに注意してください。切り上げ、四捨五入などの異なる変換方法が必要な場合は、numpyの関数を使って適用してからastype()関数でint64に変換してください。

非有限値が存在する場合の対処法

float64からint64への変換を行う際、Series内にNaN(非数値)または無限大(inf)などの非有限値が存在すると、IntCastingNaNError: Cannot convert non-finite values (NA or inf) to integerというエラーが発生します。この問題を解決するには、欠損値(NaN)を処理する必要があります。

欠損値を削除する

dropna()を使ってデータを削除する方法です。以下のように実行します。

subjects = subjects.dropna(subset=['Visit'])
subjects['Visit'] = subjects['Visit'].astype('int64')

欠損値を他の値で置き換える

fillna()を使って欠損値を他の値で置き換える方法です。例えば、以下のように0で置き換えることができます。

subjects['Visit'] = subjects['Visit'].fillna(0).astype('int64')

欠損値の処理方法はデータと分析目的に応じて適切な方法を選択してください。

まとめ

本記事では、Pythonのpandasライブラリを使用して、Seriesのfloat64をint64に変換する方法について説明しました。また、データ内に非有限値が存在する場合のエラー対処法についても触れました。データの前処理はデータ分析作業の重要な一部であり、データのタイプを正しく理解し、適切に処理することが求められます。非有限値や欠損値の存在は常に注意が必要で、その対処法を知っておくことは大変重要です。

それでは、次回のデータ分析作業での成功を祈っています。Happy coding!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1