Tôi đã xem câu trả lời cho câu hỏi này: Parse dates when YYYYMMDD and HH are in separate columns using pandas in Python, nhưng nó dường như không hiệu quả với tôi, điều này khiến tôi nghĩ rằng mình đang làm điều gì đó sai .Đọc dữ liệu từ csv vào gấu trúc khi ngày và thời gian nằm trong các cột riêng biệt
Tôi có dữ liệu trong các tệp .csv, mà tôi đang cố gắng đọc bằng chức năng read_csv của gấu trúc. Ngày và thời gian nằm trong hai cột riêng biệt, nhưng tôi muốn hợp nhất chúng thành một cột, "Ngày giờ", chứa các đối tượng datetime. Csv trông như thế này:
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...
...
Tôi đang cố gắng để đọc nó bằng cách sử dòng mã này:
read_csv("2069_ALL_YEAR=2008.csv", skiprows=2, parse_dates={"Datetime" : [1,2]}, date_parser=True, na_values=["-99.9"])
Tuy nhiên, khi tôi viết nó lại ra một csv, nó trông giống hệt nhau (ngoại trừ các -99,9 được đổi thành NA, như tôi đã chỉ định với đối số na_values). Ngày và thời gian nằm trong hai cột riêng biệt. Như tôi đã hiểu, điều này sẽ tạo một cột mới được gọi là Ngày giờ bao gồm các cột 1 và 2, được phân tích bằng cách sử dụng date_parser. Tôi cũng đã thử sử dụng parse_dates = {"Datetime": ["Date", "Time"]}, parse_dates = [[1,2]] và parse_dates = [["Date", "Time"]]. Tôi cũng đã cố gắng sử dụng date_parser = phân tích, nơi phân tích cú pháp được định nghĩa là:
parse = lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M')
Không ai trong số những đã đạt được chút ít sự khác biệt, mà làm cho tôi nghi ngờ rằng có một số vấn đề sâu sắc hơn. Bất kỳ cái nhìn sâu sắc vào những gì nó có thể được?
Nó làm việc cho tôi với dữ liệu mẫu của bạn. Tôi đã phải đưa ra date_parser = True bit, mặc dù. – dooz
Rất tiếc, bây giờ tôi nhìn vào điều này, tôi nghĩ rằng cách của bạn cũng nên hoạt động, phiên bản gấu trúc nào bạn đang sử dụng? –
Vui vì tôi không điên vì nghĩ nó có vẻ đúng :). Tôi đang sử dụng gấu trúc phiên bản 0.7.0-1 trên phiên bản Linux Mint 13 MATE. – seaotternerd