Moim celem jest podsumowanie prędkości tętna danej osoby w czasie i uczynić boxPlot, aby go wizualizować.

Teraz mam dataframe z takimi danymi takimi jak: Wpisz opis obrazu tutaj

{'Minute': {0: Timestamp('2015-02-24 00:00:00'),
  1: Timestamp('2015-02-24 00:00:30'),
  2: Timestamp('2015-02-24 00:01:00'),
  3: Timestamp('2015-02-24 00:01:30'),
  4: Timestamp('2015-02-24 00:02:00'),
  5: Timestamp('2015-02-24 00:02:30')},
 'heartrate': {0: 66, 1: 68, 2: 70, 3: 72, 4: 75, 5: 79}}

I chciałem stworzyć nowy dataframe podsumowując statystyki tętna według minut, tutaj jest to, co chcę mieć: Wprowadź opis obrazu tutaj

{'Hour': {0: '00', 1: '00', 2: '00'},
 'Minute': {0: 0, 1: 1, 2: 2},
 'Max heart rate': {0: 68, 1: 72, 2: 79},
 'Min heart rate': {0: 66, 1: 70, 2: 75},
 'Avg heart rate': {0: 67, 1: 71, 2: 77}}

W końcu chcę użyć nowej dataframe powyżej, aby wykreślić tętno za pomocą boxplots i X-osi w zakresie serii czasu, podobnie jak następujący z osi X w miarę upływu czasu (minuta) i osi Y, ponieważ BPM tętna: Wpisz opis obrazu tutaj

I do części daty, jeśli istnieją dane o różnych dniach takich jak 1 lutego, 2 lutego, 3 lutego, wszystkie z godziną 21:00 i minutę 01, jak go różnicować?

Duży dziękuję wszystkim ludziom, którzy pomogli!

0
Simon F 23 listopad 2020, 10:12

1 odpowiedź

Najlepsza odpowiedź

Możesz spróbować tego:

import pandas as pd


df = pd.DataFrame({'Timestamp': {0: pd.Timestamp('2015-02-24 00:00:00'), 
1: pd.Timestamp('2015-02-24 00:00:30'), 2: pd.Timestamp('2015-02-24 
00:01:00'), 3: pd.Timestamp('2015-02-24 00:01:30'), 4: pd.Timestamp('2015- 
02-24 00:02:00'), 5: pd.Timestamp('2015-02-24 00:02:30')}, 'heartrate': 
{0: 66, 1: 68, 2: 70, 3: 72, 4: 75, 5: 79}})

df['Minute'] = df['Timestamp'].apply(lambda minute : minute.minute)
df['Hour'] = df['Timestamp'].apply(lambda hour : hour.hour)
df['Day'] = df['Timestamp'].apply(lambda day : day.day)
df['Month'] = df['Timestamp'].apply(lambda month : month.month)
df['Year'] = df['Timestamp'].apply(lambda year : year.year)
df.groupby(['Year','Month','Day','Hour','Minute']).agg({'heartrate': 
['mean', 'min', 'max']})
1
Vebjørn Gaupset 23 listopad 2020, 07:48