同じ列の値にスライスパンダデータフレーム

pr94:

私はこのようなものに見えるDFパンダを持っています。

import pandas as pd

df = pd.DataFrame({0:[1],5:[1],10:[1],15:[1],20:[0],25:[0],
                   30:[1],35:[1],40:[0],45:[0],50:[0]})
df

ここでは、画像の説明を入力します。

列名は、座標を反映しています。私は開始を取得し、連続した同じ番号の列の座標に終了したいと思います。

出力は次のようなものでなければなりません。

# start,end
0,15 
20,25
30,35
40,50
YOBEN_S:

IIUCusing groupbydiffし、cumsumグループを分割します

s=df.T.reset_index()
s=s.groupby(s[0].diff().ne(0).cumsum())['index'].agg(['first','last'])
Out[241]: 
   first  last
0             
1      0    15
2     20    25
3     30    35
4     40    50

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=29065&siteId=1