私はデータフレームを持っています。ここでは、1つの列に真または偽の値のみがブロック内に含まれています。たとえば:パンダのデータフレームのブロックで最初に「真」の値を見つけよう
df =
b
0 False
1 True
2 True
3 False
4 True
5 True
6 True
7 True
8 False
9 False
10 False
11 False
12 False
13 True
14 True
15 True
私は真でブロックの先頭を見つける必要がある:
>> find_first_true(df)
>> array([1, 4, 13])
どれエレガントなソリューション?提案された解決策のための
EDIT
感謝。私は、私が見つけた指標から始めて、特定の長さのブロックを抽出する最も簡単な方法は何でしょうか?
たとえば、インデックスの前に長さ4のブロック(行数)を入れる必要があります。だから、私のインデックス(以前に見つかっ)
index = array([1, 4, 13])
はその後、私はブロックが必要な場合:
[df.loc[0:4], df.loc[9:13]]
または
b
0 False
1 True
2 True
3 False
4 True
9 False
10 False
11 False
12 False
13 True
私はインデックスをループが、詳細pandasianソリューションを不思議
ています
@MedAliには、真と偽の値のブロックがあります(この例では示されています)。 True値のブロックで最初のTrueのインデックスを見つける必要があります。または、あなたが好きなら、最初の真False –