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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

754閲覧

indexが存在しないDataFrameをsumするとNaNでなく0が表示されてしまう

ROKUNO

総合スコア10

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/03/06 14:47

編集2020/03/06 14:48

indexが存在しないDataFrameをsumするとNaNでなく0が表示されてしまうという事象が出ており、
なぜこのようなことが起きるのか、また良い解決策などあればアドバイスいただけると幸いです。

データの解析の際に、一連の作業の中でDataFrameの中が「空っぽの状態」で処理をすることが出てきています。
この空っぽのDataFrameがあることは問題ないのですが、間の処理でsumをかけると、0が出てしまい、後続のデータ検討に支障をきたしています。

問題を再現するためのコード

python

1import numpy as np 2import pandas as pd 3from pandas import DataFrame 4 5df = DataFrame({'A':[""], 6 'B':[""], 7 'C':[""], 8 'D':[""]}) 9 10df = df.drop(0) 11df.sum() 12

実際に得られる結果

python

1#実際に得られるアウトプット 2A 0.0 3B 0.0 4C 0.0 5D 0.0 6dtype: float64

得たいデータのアウトプット

データが何もないのだから、NaNなどの形でsumが返り値を出してくれると嬉しいですが、どうすれば簡易的にできるのかアドバイスをいただきたいです。

python

1#理想とするデータのアウトプット 2A NaN 3B NaN 4C NaN 5D NaN 6dtype: float64

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

この空っぽのDataFrameがあることは問題ないのですが、間の処理でsumをかけると、0が出てしまい、後続のデータ検討に支障をきたしています。

sum() の引数 min_count を指定すると、総和を計算する際に、要素数がこの値未満の場合は結果は NaN になります。
デフォルトでは min_count=0 なので、要素が1個もない状態でも NaN とはならず、0を返します。
「最低1個以上の要素がないといけない」としたい場合は min_count=1 とすればいいでしょう。

pandas.DataFrame.sum — pandas 1.0.1 documentation

python

1import pandas as pd 2 3df = pd.DataFrame({"A": [""], "B": [""], "C": [""], "D": [""]}) 4df = df.drop(0) 5df.sum(min_count=1) 6# A NaN 7# B NaN 8# C NaN 9# D NaN 10# dtype: float64

投稿2020/03/06 15:00

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問