Python・Pandasのデータフレームに無限大(inf)が含まれているか確認する方法
Pandasのデータフレーム内に無限大(inf)が含まれているかどうかを確認するには、NumPyのisinf()メソッドを使用します。また、無限大の値がいくつあるかを数えたい場合は、sum()と組み合わせることで簡単に集計できます。
必要なライブラリのインポート
まず、必要なライブラリをそれぞれ別名(エイリアス)を付けてインポートします。
import pandas as pd import numpy as np
無限大を含むデータの準備
次に、辞書型のリストを作成します。ここではNumPyのnp.infを使って、意図的に無限大の値を設定しています。
d = { "Reg_Price": [7000.5057, np.inf, 5000, np.inf, 9000.75768, 6000] }作成した辞書をもとに、データフレームを生成します。
dataFrame = pd.DataFrame(d)
無限大の検出とカウント
isinf()でデータフレーム内の無限大を判定し、values.sum()でその合計数を取得します。
count = np.isinf(dataFrame).values.sum()
サンプルコード
以下に完全なコード例を示します。
import pandas as pd
import numpy as np
# 辞書型のリストを定義
d = { "Reg_Price": [7000.5057, np.inf, 5000, np.inf, 9000.75768, 6000] }
# 辞書からデータフレームを作成
dataFrame = pd.DataFrame(d)
print("DataFrame...\n", dataFrame)
# 無限大の値をチェックし、件数を表示
count = np.isinf(dataFrame).values.sum()
print("\nInfinity values...\n ", count)実行結果
上記のコードを実行すると、以下のような出力が得られます。
DataFrame...
Reg_Price
0 7000.505700
1 inf
2 5000.000000
3 inf
4 9000.757680
5 6000.000000
Infinity values...
2補足:負の無限大やNaNの扱い
isinf()は正の無限大(+inf)だけでなく、負の無限大(-inf)も検出できます。一方、欠損値であるNaNは無限大とはみなされないため、NaNも同時にチェックしたい場合は np.isnan() を併用するか、データ全体の異常値をまとめて確認するのに便利な df.isin([np.inf, -np.inf]).values.sum() のような書き方もあります。
また、無限大を含む行を除外したい場合は、以下のようにすることでクリーンなデータフレームを取得できます。
df_clean = dataFrame.replace([np.inf, -np.inf], np.nan).dropna()
このように、isinf()とsum()を組み合わせれば、データフレーム内の無限大の有無や件数を簡単に把握でき、データ前処理の品質向上に役立ちます。
-
Python Pandasのnotnull()メソッドでNULL値(NaN)を確認する方法
Pandasのnotnull()メソッドは、ブール値(True / False)を返すメソッドです。DataFrameにNULL値(NaN)が含まれている場合はFalseを返し、NULL値でない場合はTrueを返します。ここでは、NaN(NULL値)をいくつか含む次のCSVファイルを例にして説明します。CSVファイルの読み込みまず、read_csv()を使ってCSVファイルを読み込みます。dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\CarRecords.csv")NULL値以外(有効なデータ)の確認notnull(
-
Pythonでリストに連続した数値が含まれているか確認する方法
データ分析の目的によっては、Pythonのデータコンテナ内に連続した数値が含まれているかどうかを確認する必要がある場合があります。本記事では、リストの要素の中に連続する数値が存在するかどうかを判定する2つの方法を、具体的なサンプルコードとともに解説します。rangeとsortedを組み合わせる方法sorted関数は、リストの要素を昇順に並べ替えます。その後、min関数とmax関数を使ってリスト内の最小値と最大値を取得し、range関数に渡して連続した数値列を生成します。並べ替えたリストと生成した数値列を比較し、両者が一致すれば、元のリストには連続した数値が含まれていることになります。サンプルコ