質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
DataSet

DataSetは、ADO.NETアーキテクチャのコンポーネントです。データベースから取得したレコードをメモリ領域に格納するクラスを指します。データの保持やテーブル間のリレーション・制約といった保持も可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

解決済

pandas.Dataframe.mean()の結果で「nan」もしくは「0.0」が出力される

h_r_k
h_r_k

総合スコア1

DataSet

DataSetは、ADO.NETアーキテクチャのコンポーネントです。データベースから取得したレコードをメモリ領域に格納するクラスを指します。データの保持やテーブル間のリレーション・制約といった保持も可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

1回答

0評価

1クリップ

170閲覧

投稿2022/09/22 19:13

編集2022/09/24 05:41

前提

・pythonのpandasを用いて機械学習の前処理をおこなっている際に問題が発生
・pandas.Dataframe.mean()を用いてpandasの各columnの平均値の取得を試みた

課題

・一部のcolumnでの結果が平均値ではなく「nan」もしくは「0.0」となった
(※Dataframeは458913行179列)

知りたいこと

・pandas.Dataframe.mean()の結果で「nan」もしくは「0.0」が出力される理由と正しい結果を取得する方法

データ

データセット Kaggle - American Express - Default Prediction
https://www.kaggle.com/datasets/munumbutt/amexfeather

実行したコード

python

## データの読み込み for data in ["test", "train"]: df = pd.read_feather(f'../input/amexfeather/{data}_data.ftr') df = df.groupby('customer_ID').tail(1).set_index('customer_ID') if data == "test": df_test = df else: df_train = df del df gc.collect() categorical = ['B_30', 'B_38', 'D_114', 'D_116', 'D_117', 'D_120', 'D_126', 'D_63', 'D_64', 'D_66', 'D_68'] df_train.drop(categorical, axis="columns", inplace=True) df_test.drop(categorical, axis="columns", inplace=True) ## 問題発生部分 df_train.mean()

出力結果

python

df_train.mean() P_2 NaN D_39 NaN B_1 0.000000 B_2 NaN R_1 0.000000 S_3 NaN D_41 0.000000 B_3 NaN D_42 0.177979 D_43 0.000000 D_44 0.000000 B_4 NaN D_45 NaN B_5 0.000000 R_2 0.000000 D_46 NaN D_47 NaN D_48 NaN D_49 0.191162 B_6 NaN B_7 NaN B_8 NaN D_50 0.000000 D_51 NaN B_9 NaN R_3 0.000000 D_52 NaN P_3 NaN B_10 NaN D_53 0.000000 S_5 0.000000 B_11 0.000000 S_6 NaN D_54 NaN R_4 0.000000 S_7 NaN B_12 0.000000 S_8 NaN D_55 NaN D_56 0.000000 B_13 0.000000 R_5 0.000000 D_58 NaN S_9 0.000000 B_14 0.000000 D_59 NaN D_60 NaN D_61 NaN B_15 0.000000 S_11 NaN D_62 NaN D_65 0.000000 B_16 NaN B_17 NaN B_18 NaN B_19 NaN B_20 NaN S_12 NaN R_6 0.000000 S_13 NaN B_21 0.000000 D_69 NaN B_22 0.000000 D_70 0.000000 D_71 0.000000 D_72 0.000000 S_15 NaN B_23 NaN D_73 0.170654 P_4 0.000000 D_74 NaN D_75 NaN D_76 0.143066 B_24 0.000000 R_7 NaN D_77 0.000000 B_25 0.000000 B_26 0.000000 D_78 0.000000 D_79 0.000000 R_8 0.000000 R_9 0.252930 S_16 0.000000 D_80 0.000000 R_10 0.000000 R_11 0.000000 B_27 0.000000 D_81 0.000000 D_82 0.000000 S_17 0.000000 R_12 NaN B_28 NaN R_13 0.000000 D_83 0.000000 R_14 NaN R_15 0.000000 D_84 0.000000 R_16 0.000000 B_29 0.046021 S_18 0.000000 D_86 0.000000 D_87 1.000000 R_17 0.000000 R_18 0.000000 D_88 0.208130 B_31 NaN S_19 0.000000 R_19 0.000000 B_32 0.000000 S_20 0.000000 R_20 0.000000 R_21 0.000000 B_33 NaN D_89 0.000000 R_22 0.000000 R_23 0.000000 D_91 0.000000 D_92 0.000000 D_93 0.000000 D_94 0.000000 R_24 0.000000 R_25 0.000000 D_96 0.000000 S_22 NaN S_23 NaN S_24 NaN S_25 NaN S_26 0.000000 D_102 NaN D_103 NaN D_104 NaN D_105 NaN D_106 0.222290 D_107 NaN B_36 0.000000 B_37 0.000000 R_26 0.087769 R_27 NaN D_108 0.072083 D_109 0.000000 D_110 0.746582 D_111 0.886230 B_39 0.320068 D_112 NaN B_40 NaN S_27 NaN D_113 NaN D_115 NaN D_118 NaN D_119 NaN D_121 NaN D_122 NaN D_123 0.000000 D_124 NaN D_125 0.000000 D_127 0.000000 D_128 NaN D_129 NaN B_41 0.000000 B_42 0.110535 D_130 NaN D_131 0.000000 D_132 0.209473 D_133 0.000000 R_28 0.000000 D_134 0.341553 D_135 0.029068 D_136 0.246826 D_137 0.014122 D_138 0.158936 D_139 NaN D_140 0.000000 D_141 NaN D_142 0.000000 D_143 NaN D_144 0.000000 D_145 0.000000 target 0.258934 dtype: float64

イメージ説明

試したこと

・fillna()を利用してNaN値をすべて適当な値で埋めたうえでmean()を利用する ⇒ 結果変わらず
・mean(skipna=True)で平均値算出 ⇒ 結果変わらず

補足情報(FW/ツールのバージョンなど)

S_2の日付データ以外は全てastypeで数値データに変換済み
上記のコードは全てKaggleのnotebook環境で実行(2022年9月22日時点)

お知恵をお貸しいただけますと大変幸いです。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

h_r_k

2022/09/22 22:54

お手数お掛けしまして申し訳ございません。ご認識の通りです。リンクの添付ありがとうございます。
can110

2022/09/22 23:26

ふつうのKaggleのnotebookではそのままread_csvしてもメモリ不足で読み込めないようですが… - 現象が再現するコード全体 - describe()をprintした結果(各列の平均、最大、最小値などが分かる) を質問本文に画像ではなくテキストで追記ください。
h_r_k

2022/09/23 13:34

ご指摘ありがとうございます。 以下2点修正いたしました。 ①データソースの追記  feather形式のファイルであればKaggle環境でメモリリークせず実行可能でしたのでそのリンクを本文に追記しました ②実行コードの修正  テキストで追記いたしました。 ③出力の修正  テキストで追記いたしました。 Describeの結果が文字数制限でテキストで記載できなかったため、結果の一部を画像で添付しております。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

DataSet

DataSetは、ADO.NETアーキテクチャのコンポーネントです。データベースから取得したレコードをメモリ領域に格納するクラスを指します。データの保持やテーブル間のリレーション・制約といった保持も可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。