1

基本的に、データセットの欠落値が継続的に繰り返されているかどうかを確認したいと思います。データセットに数え切れないほど繰り返される欠測値がある場合、連続して繰り返される欠測値セットのそれぞれの長さが証明書番号を超えているかどうかを知りたいです。

例えば:

data =['1', '0', '9', '31', '11', '12', 'nan', '10', '44', '53', '12', '66', '99', '3', '2', '6.75833',....., 'nan', 'nan', 'nan', '3', '7', 'nan', 'nan']

data上記では、の総数は6'nan'になり、で計算できますdata.count('nan')。しかし、私が知りたいのは、欠落している値をどれだけ継続的に繰り返すことができるかということです。このデータの場合、答えは3になります。

サンプルコードを表示していないことをお詫びしますが、私はこの分野の初心者であり、コーディングのアイデアがまったくありませんでした。

任意のアイデア、ヘルプ、またはヒントをいただければ幸いです。

4

3 に答える 3

3

これはitertools.groupby()の仕事のように見えます:

>>> from itertools import groupby
>>> data =['1', '0', '9', '31', '11', '12', 'nan', '10', '44', '53', 
           '12', '66', '99', '3', '2', '6.75833', 'nan', 'nan', 'nan', 
           '3', '7', 'nan', 'nan']
>>> [len(list(group)) for key, group in groupby(data) if key == 'nan']
[1, 3, 2]

コードに文字列ではなく実際のNaNが含まれている場合は、if key == 'nan'同等性テストを。に置き換える必要があることに注意してくださいmath.isnan(key)

于 2013-02-08T04:11:43.323 に答える