Panda's: tijd toevoegen/aftrekken aan datetime
U kunt de volgende basissyntaxis gebruiken om tijd toe te voegen aan of af te trekken van een datum/tijd in panda’s:
#add time to datetime df[' new_datetime '] = df[' my_datetime '] + pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 ) #subtract time from datetime df[' new_datetime '] = df[' my_datetime '] - pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 )
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Tijd optellen/aftrekken bij Datetime in Panda’s
Laten we zeggen dat we het volgende panda’s DataFrame hebben dat de verkopen van een winkel op 10 verschillende datums en tijden laat zien:
import pandas as pd #createDataFrame df = pd. DataFrame ({' time ': pd.date_range (' 2022-01-01 ', periods= 10 ), ' sales ': [14, 22, 25, 29, 31, 10, 12, 8, 22, 25]}) #view DataFrame print (df) time sales 0 2022-01-01 14 1 2022-01-02 22 2 2022-01-03 25 3 2022-01-04 29 4 2022-01-05 31 5 2022-01-06 10 6 2022-01-07 12 7 2022-01-08 8 8 2022-01-09 22 9 2022-01-10 25
We kunnen de panda’s Timedelta- functie gebruiken om 5 uur, 10 minuten en 3 seconden toe te voegen aan elke datetime-waarde in de kolom „tijd“:
#create new column that contains time + 5 hours, 10 minutes, 3 seconds
df[' time_plus_some '] = df[' time '] + pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 )
#view updated DataFrame
print (df)
time sales time_plus_some
0 2022-01-01 14 2022-01-01 05:10:03
1 2022-01-02 22 2022-01-02 05:10:03
2 2022-01-03 25 2022-01-03 05:10:03
3 2022-01-04 29 2022-01-04 05:10:03
4 2022-01-05 31 2022-01-05 05:10:03
5 2022-01-06 10 2022-01-06 05:10:03
6 2022-01-07 12 2022-01-07 05:10:03
7 2022-01-08 8 2022-01-08 05:10:03
8 2022-01-09 22 2022-01-09 05:10:03
9 2022-01-10 25 2022-01-10 05:10:03
En we kunnen net zo gemakkelijk een nieuwe kolom maken die 5 uur, 10 minuten en 3 seconden aftrekt van elke datetime-waarde in de kolom ‚tijd‘:
#create new column that contains time - 5 hours, 10 minutes, 3 seconds
df[' time_minus_some '] = df[' time '] - pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 )
#view updated DataFrame
print (df)
time sales time_minus_some
0 2022-01-01 14 2021-12-31 18:49:57
1 2022-01-02 22 2022-01-01 18:49:57
2 2022-01-03 25 2022-01-02 18:49:57
3 2022-01-04 29 2022-01-03 18:49:57
4 2022-01-05 31 2022-01-04 18:49:57
5 2022-01-06 10 2022-01-05 18:49:57
6 2022-01-07 12 2022-01-06 18:49:57
7 2022-01-08 8 2022-01-07 18:49:57
8 2022-01-09 22 2022-01-08 18:49:57
9 2022-01-10 25 2022-01-09 18:49:57
Opmerking #1 : In deze voorbeelden hebben we een specifiek aantal uren, minuten en seconden gebruikt, maar je kunt ook slechts één van deze eenheden gebruiken als je wilt. U kunt bijvoorbeeld pd.Timedelta(hours=5) opgeven om eenvoudigweg vijf uur toe te voegen aan een datetime-waarde.
Opmerking #2 : U kunt de volledige documentatie van de Panda’s Timedelta- functie hier vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:
Hoe Timedelta naar Int te converteren in Panda’s
Hoe DateTime naar string te converteren in Pandas
Hoe tijdstempel naar datum/tijd in Panda’s te converteren
Hoe u een datumkolom van jaar, maand en dag maakt in Pandas