Spojrzałem na odpowiedź na to pytanie: Parse dates when YYYYMMDD and HH are in separate columns using pandas in Python, ale to nie działa dla mnie, co powoduje, że myślę, że robię coś pod niewłaściwego .Czytanie danych z csv na pandy, gdy data i godzina znajdują się w oddzielnych kolumnach
Mam dane w plikach .csv, które próbuję odczytać za pomocą funkcji pandas read_csv. Data i godzina są w dwóch oddzielnych kolumnach, ale chcę scalić je w jedną kolumnę "Datetime", zawierającą obiekty datetime. CSV wygląda tak:
Note about the data
blank line
Site Id,Date,Time,WTEQ.I-1...
2069, 2008-01-19, 06:00, -99.9...
2069, 2008-01-19, 07:00, -99.9...
...
próbuję go odczytać za pomocą poniższego wiersza kodu:
read_csv("2069_ALL_YEAR=2008.csv", skiprows=2, parse_dates={"Datetime" : [1,2]}, date_parser=True, na_values=["-99.9"])
Jednak, gdy piszę go z powrotem do csv, wygląda dokładnie tak samo (z tą różnicą, że -99.9s są zmienione na NA, jak to określiłem z argumentem na_values). Data i godzina są w dwóch osobnych kolumnach. Jak rozumiem, powinno to być utworzenie nowej kolumny o nazwie Datetime, która składa się z kolumn 1 i 2, analizowanych przy użyciu date_parser. Próbowałem również using parse_dates = {"Datetime": ["Date", "Time"]}, parse_dates = [[1,2]] i parse_dates = [["Date", "Time"]]. Próbowałem również używając date_parser = analizować, gdzie parse jest zdefiniowany jako:
parse = lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M')
Żaden z nich nie uczynił najmniejszego trochę różnica, która sprawia mi podejrzewać, że istnieje jakiś głębszy problem. Jaki wgląd w to, co to może być?
Działa dla mnie z przykładowymi danymi. Musiałem jednak usunąć date_parser = True bit. – dooz
Ooops, teraz patrzę na to, myślę, że twoje sposoby powinny również zadziałać, której wersji pandy używasz? –
Cieszę się, że nie jestem szalony, sądząc, że wydawało się to właściwe :). Używam pand w wersji 0.7.0-1 na Linux Mint 13 MATE. – seaotternerd