Pandas DataFrame Conditional Groupby - PullRequest
       2

Pandas DataFrame Conditional Groupby

0 голосов
/ 16 декабря 2018

У меня есть этот DF:

df = pd.DataFrame(data=[[-2.000000, -1.958010,  0.2],
                   [-1.958010, -1.916030,  0.4],
                   [-1.916030, -1.874040,  0.3],  
                   [-1.874040, -1.832050,  0.6],
                   [-1.832050, -1.790070, 0.8],
                   [-1.790070, -1.748080,  0.2]],columns=['egystart','egyend','fx'])

Поэтому я хочу сгруппировать каждые две строки и получить fx как среднее значение двух строк.egystart должен быть egystart первого ряда, а egyend должен egyend второго ряда.

В этом случае я должен получить:

-2.000000 -1.916030  0.3
-1.916030 -1.832050  0.45  
-1.832050 -1.748080  0.5

Итак, я попробовал что-то вроде этого:

df.groupby((df.egystart == df.egyend.shift(1)).cumsum()).agg({'egystart':min, 'egyend':max, 'fx':HERE_THE_MEAN_VALUE})

Но это не работает

1 Ответ

0 голосов
/ 16 декабря 2018

Вы можете попробовать это, чтобы получить среднее значение fx каждые 2 строки:

result = df.groupby(np.arange(len(df))//2).mean()

print(result)

   egystart    egyend    fx
0 -1.979005 -1.937020  0.30
1 -1.895035 -1.853045  0.45
2 -1.811060 -1.769075  0.50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...