Tenho um conjunto de dados no seguinte formato:
2024-10-27T00:00 1 A
2024-10-27T00:15 2 B
2024-10-27T00:30 3 C
2024-10-27T00:45 4 D
2024-10-27T01:00 5 E
2024-10-27T01:15 6 F
2024-10-27T01:30 7 G
2024-10-27T01:45 8 H
2024-10-27T02:00 9 I
2024-10-27T02:00 10 J
2024-10-27T02:15 11 K
2024-10-27T02:15 12 L
2024-10-27T02:30 13 M
2024-10-27T02:30 14 N
2024-10-27T02:45 15 O
2024-10-27T02:45 16 P
2024-10-27T03:00 17 Q
2024-10-27T03:15 18 R
2024-10-27T03:30 19 S
2024-10-27T03:45 20 T
Isso está no horário local CE(S)T, então quero que o Pandas deduza a mudança de horário de verão. No entanto, ele gera um erro informando que há 4 mudanças de horário de verão, quando esperava apenas uma.
Curiosamente, o código abaixo funciona:
import pandas as pd
data = [
["2024-10-27T00:00", 1, "A"],
["2024-10-27T00:15", 2, "B"],
["2024-10-27T00:30", 3, "C"],
["2024-10-27T00:45", 4, "D"],
["2024-10-27T01:00", 5, "E"],
["2024-10-27T01:15", 6, "F"],
["2024-10-27T01:30", 7, "G"],
["2024-10-27T01:45", 8, "H"],
["2024-10-27T02:00", 9, "I"],
["2024-10-27T02:15", 10, "J"],
["2024-10-27T02:30", 11, "K"],
["2024-10-27T02:45", 12, "L"],
["2024-10-27T02:00", 13, "M"],
["2024-10-27T02:15", 14, "N"],
["2024-10-27T02:30", 15, "O"],
["2024-10-27T02:45", 16, "P"],
["2024-10-27T03:00", 17, "Q"],
["2024-10-27T03:15", 18, "R"],
["2024-10-27T03:30", 19, "S"],
["2024-10-27T03:45", 20, "T"],
]
df = pd.DataFrame(data, columns=["timestamp", "number", "letter"])
df.set_index("timestamp", inplace=True)
df.index=pd.to_datetime(df.index)
df.index=df.index.tz_localize('Europe/Amsterdam',ambiguous='infer')
No último exemplo, o Pandas parece interpretar (corretamente) que a primeira ocorrência é de fato o verão e a segunda, o inverno. Existe uma maneira de lidar com isso (facilmente)? Codificar a reordenação seria uma maneira, mas parece trabalhoso (honestamente, nem saberia como, algo como filtrar por duplicatas e depois fazer um loop e trocar as linhas?).
Alguém tem alguma ideia sobre isso?