2

次のようなpythonリスト/エクセル範囲があります

[0,0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0] . 

次の出力が必要です。

length of 1st set of zeros - 4

length of 2nd set of zeros - 2

length of 3rd set of zeros - 1

length of 4th set of zeros - 7

length of 5th set of zeros - 3

n番目の値を見つけるのに役立つ数式をExcelで試しました" COUNTIF($D2:D$2,D2)"が、連続する値の各セットの長さを見つける方法がわかりません。

上記を Excel と Python でどのように実現できますか?

4

2 に答える 2

3

Excelでは、データがあると仮定するとD2:D20、F2でこの「配列数式」を使用できます

=IFERROR(INDEX(FREQUENCY(IF($D$2:$D$20=0,ROW($D$2:$D$20)),IF(OFFSET($D$2:$D$20,1,0)<>0,IF($D$2:$D$20=0,ROW($D$2:$D$20)))),ROWS(F$2:F2)),"")

CTRL + SHIFT + ENTER で確認し、下にコピーします - これにより、すべてのゼロ シーケンス長のリストが得られます - 数字がなくなると、空白になります

データが列ではなく行にある場合は、それを少し修正する必要があります.....

于 2013-03-04T13:13:51.337 に答える
3

おそらく使用する必要がありますitertools.groupby

counter = 1
suffixes = {1: 'st', 2:'nd', 3:'rd'}
for key, group in itertools.groupby(the_sequence):
    if key == 0:
        print 'The length of {}{} sequence of zeros is: {}'.format(counter,
                                                                   suffixes.get(counter, 'th'),
                                                                   len(tuple(group)))
        counter += 1

その出力:

The length of 1st sequence of zeros is: 4
The length of 2nd sequence of zeros is: 2
The length of 3rd sequence of zeros is: 1
The length of 4th sequence of zeros is: 7
The length of 5th sequence of zeros is: 3

残念ながら、私は Excel のユーザーではないため、Excel ソリューションについてはお手伝いできません。

于 2013-03-04T12:52:53.710 に答える