Попытка выбрать срезы данных в пандах, используя метки времени в качестве местоположения - PullRequest
0 голосов
/ 12 июня 2018

Я начинаю с создания фрейма данных из моего входного CSV-файла и получаю правильный формат, но теперь мне нужно выполнить вычисления для столбцов V, I и P.Я хочу разделить данные, используя метки времени.

т.е. получить среднее значение для V, I и P для всех значений между тестовым циклом 0 и тестовым циклом 1. Я знаю, что могу сделать это с помощью iloc, ноЯ пытаюсь написать сценарий, который будет работать для разных файлов журналов, которые могут иметь разное количество записей.

Вывод фрейма данных

Пожалуйста, дайте мне знать, если вынужна дополнительная информация, любая помощь / вклад приветствуется.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Если вы хотите получить среднее значение для строк между строками «Цикл тестирования»:

Сначала вам нужно извлечь пределы ваших временных окон:

serie_time_limits = df[df['Time'].contains('Test loop')]['Time'].str[:19]
df_data = df[~df['Time'].contains('Test loop')]
df_data['Time'] = df_data['Time'].str[:19]

ЗатемВы можете получить среднее значение для каждого цикла тестирования:

means = []
for i in range(len(serie_time_limits)):
    if i==len(serie_time_limits)-1:
        df_window = df_data[(df_data['Time']>=serie_time_limits[i])
    else:
        df_window = df_data[(df_data['Time']>=serie_time_limits[i]) & (df_data['Time']<serie_time_limits[i+1])]
    means.append(df_window[['V', 'I', 'P']].mean())
0 голосов
/ 12 июня 2018

Я думаю, нужно извлечь сначала 19 значения из столбца Time и агрегировать mean:

df = df.groupby(df['Time'].str[:19]).mean()

Если необходимо удалить строки с NaN с до:

df = df.dropna()
df = df.groupby(df['Time'].str[:19]).mean()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...