среднее значение записей в столбце, когда выполняется условие времени python - PullRequest
0 голосов
/ 23 апреля 2020

Я ищу код, который связывает мой огромный набор данных за время sepcifi c.

Предположим, у меня есть следующий фрейм данных:

import pandas as pd
data = {'Time':['1582542231', '1582542231', '1582542232', '1582542232', '1582542232', '1582542232', '1582542232', '1582542233', '1582542233', '1582542233'], 'Value':[20, 21, 19, 19, 18, 15, 16, 11, 4, 15], 'blabla':[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}  
df = pd.DataFrame(data)

         Time  Value  blabla
0  1582542231     20     1
1  1582542231     21     2
2  1582542232     19     3
3  1582542232     19     4
4  1582542232     18     5
5  1582542232     15     6
6  1582542232     16     7
7  1582542233     11     8
8  1582542233      4     9
9  1582542233     15     10

Теперь я хотел бы чтобы создать новый столбец 'mean' или заменить столбцы средним значением столбца 'Value' и 'blabla' для одной и той же отметки времени 'Time'

Это означает следующий вывод:

         Time  Value  blabla
0  1582542231   20.5     1.5
1  1582542232   17.4     5
2  1582542233     10     9

Сложность заключается в том, что длина кадра данных превышает тысячи секунд, и я не знаю, как создать правильное условие для выбора данных, поскольку количество записей временных отметок варьируется. Иногда у меня есть 100 записей для одной и той же временной метки (например, 1582542231), а иногда у меня есть 150 записей для другой временной метки.

Я много чего пробовал с groupby, но без какого-либо удовлетворительного решения. Надеюсь, я правильно объяснил проблему, потому что Энгли sh не является моим родным языком.

Привет :)) 1015 *

1 Ответ

0 голосов
/ 24 апреля 2020

Хорошо .. Я узнал, как его кодировать. Если кто-то заинтересован в будущем, вот код:

df['Time'] = pd.to_datetime(df['Time'],unit='s')
df.set_index('Time', inplace=True)
df_group = df.groupby(pd.Grouper(level='Time', freq='1s'))['Value', 'blabla'].agg('mean')

Доходность:

                     Value  blabla
Time                              
2020-02-24 11:03:51   20.5     1.5
2020-02-24 11:03:52   17.4     5.0
2020-02-24 11:03:53   10.0     9.0
...