Iはspectrum['I']
がすべてゼロであるときはいつでも、次のコードpandas.applyは()<code>spectrum['diff']</code>すべて<code>nan</code>が含まれ、二つの列
def diff(row):
""" calculate absolute difference of this row """
return np.abs(row['I'] - row['Imean'])
spectrum['diff'] = spectrum.apply(diff, axis=1)
有する2つのパンダ列I
とImean
の絶対差を計算する差からNaNを返し。何が欠けていますか? は、情報が追加さ
(私は...まだ私がすべてゼロの場合のspectrum['I']
、その後spectrum['diff'] = spectrum['Imean']
をチェックすると、エラーを回避することができますが。):
[OK]を、私はさらに調査し、私の問題を突き止め。私は曲線の下の領域でデータを正規化し、すべてゼロのデータが存在する可能性があることを知っているので、ゼロによる除算を避けようとします。
s = spectrum['I'].sum()
try:
spectrum['I'] /= s
except ValueError:
spectrum['I'] = 0.0
私は私のスクリプトからの実行時の警告を取得していないが、私はIpythonコンソールで私のコードを実行する場合、私はRuntimeWarning: invalid value encountered in true_divide
とspectrum['I']
NaN
Sで置き換えられますを取得します。私がZeroDivisionError
を使用する場合も同じです。 ここでゼロ除算を正しく行うにはどうすればいいですか?
あなたが逃したものがたくさんあるかもしれませんが、私が見逃した最初のことは、サンプルデータセットでした。質問をするときは、これらの基準に従ってください:http://stackoverflow.com/help/mcve – piRSquared