Панды группируются и добавляются в журнал

Мой первый фрейм данных таков:

Панды группируются и добавляются в журнал

Мне нужно сделать группу по дате И добавить журнал в столбец "SEL"

Итак, я могу сделать группу по дате следующим образом:

df.groupby([df.index.date])["SEL"]

Но формула

> 10*math.log10(10**(df["SEL"]/10).sum())

Кто-нибудь может мне помочь?

Сначала я использовал:

temp=0
for index,row in df.iterrows():
    temp+=10**(row["SEL"]/10)
sumadd=10*math.log10(temp)

Это единственный способ?

Это пример вывода за несколько дней:

Панды группируются и добавляются в журнал

Я вижу редактирование, других значений в C не существует?

jezrael 28.03.2022 13:33

Я повторно редактирую, чтобы иметь пример со всеми столбцами. Окончательный ответ представляет собой логарифм суммы. СУММ из каждой строки

Kwentinus 28.03.2022 13:41
0
2
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Создайте новый столбец с GroupBy.transform и установите отсутствующие значения для всех столбцов за дату без последнего с помощью Series.mask:

dates = df.index.normalize()
df['new'] = (10*np.log10((10**(df["SEL"]/10)).groupby(dates).transform('sum'))
                   .mask(dates.duplicated(keep='last')))

Спасибо, но это неправильно. SUM должен быть в 10**(df["SEL"]/10), а не во всей формуле: 10*np.log10(10**(df["SEL"]/10))

Kwentinus 28.03.2022 13:18

Как выглядит ожидаемый результат из выборочных данных? Можете ли вы добавить их к вопросу? Потому что, честно говоря, трудно протестировать решение без вывода/

jezrael 28.03.2022 13:20

@Kwentinus - ответ был отредактирован.

jezrael 28.03.2022 13:51

Другие вопросы по теме