Parse_dates là gì

Đây là định dạng không chuẩn, do trình phân tích cú pháp mặc định không bắt được, bạn có thể vượt qua:In [11]: import datetime as dt In [12]: dt.datetime.strptime['30MAR1990', '%d%b%Y'] Out[12]: datetime.datetime[1990, 3, 30, 0, 0] In [13]: parser = lambda date: pd.datetime.strptime[date, '%d%b%Y'] In [14]: pd.read_csv[StringIO[s], parse_dates=[0], date_parser=parser] Out[14]: date  value 0 1990-03-30  140000 1 1990-06-30   30000 2 1990-09-30  120000 3 1990-12-30   34555

Một tùy chọn khác là sử dụng to_datetime sa bạn đã đọc trong chuỗi:df['date'] = pd.to_datetime[df['date'], format='%d%b%Y']

Bạn có thể dùng date_parser đối số để đọc_csvIn [62]: from pandas.compat import StringIO In [63]: s = """date,value 30MAR1990,140000 30JUN1990,30000 30SEP1990,120000 30DEC1990,34555 """ In [64]: from pandas.compat import StringIO In [65]: import datetime

date_parser mong đợi một hàm sẽ được gọi trên một chuỗi các chuỗi. func gọi datetime.datetime.strptime trên mỗi chuỗi. Kiểm tra mô đun datetime trong tài liệu python để biết thêm về mã định dạng.In [66]: func = lambda dates: [datetime.datetime.strptime[x, '%d%b%Y'] for x in dates] In [67]: s = """date,value 30MAR1990,140000 30JUN1990,30000 30SEP1990,120000 30DEC1990,34555 """ In [68]: pd.read_csv[StringIO[s], parse_dates=['date'], date_parser=func] Out[68]: date  value 0 1990-03-30  140000 1 1990-06-30   30000 2 1990-09-30  120000 3 1990-12-30   34555 [4 rows x 2 columns]

Video liên quan

Chủ Đề