Mengubah impor: mengurai tanggal

Pemasukan Data yang Efisien dengan pandas

Amany Mahfouz

Instructor

Data Tanggal dan Waktu

  • Tanggal dan waktu punya tipe data dan representasi internal sendiri
  • Nilai datetime dapat diubah ke representasi string
  • Satu set kode umum untuk mendeskripsikan format string datetime
Pemasukan Data yang Efisien dengan pandas

pandas dan Datetime

  • Kolom datetime dimuat sebagai object (string) secara default
  • Tentukan kolom bertipe datetime dengan argumen parse_dates (bukan dtype!)
  • parse_dates dapat menerima:
    • daftar nama atau nomor kolom untuk diurai
    • daftar berisi daftar kolom untuk digabung lalu diurai
    • kamus dengan kunci nama kolom baru dan nilai berupa daftar kolom yang diurai bersama
Pemasukan Data yang Efisien dengan pandas

pandas dan Datetime

Spreadsheet kolom tanggal dan waktu dengan berbagai format

Pemasukan Data yang Efisien dengan pandas

pandas dan Datetime

Spreadsheet data tanggal dan waktu dengan kolom berformat standar disorot

Pemasukan Data yang Efisien dengan pandas

pandas dan Datetime

Spreadsheet data tanggal dan waktu, menyorot kolom khusus tanggal dan khusus waktu

Pemasukan Data yang Efisien dengan pandas

pandas dan Datetime

Spreadsheet data tanggal dan waktu, menyorot kolom dengan format datetime tidak biasa

Pemasukan Data yang Efisien dengan pandas

Mengurai Tanggal

# Daftar kolom tanggal untuk diurai
date_cols = ["Part1StartTime", "Part1EndTime"]

# Muat file, mengurai kolom datetime standar survey_df = pd.read_excel("fcc_survey.xlsx", parse_dates=date_cols)
Pemasukan Data yang Efisien dengan pandas

Mengurai Tanggal

# Periksa tipe data kolom timestamp
print(survey_df[["Part1StartTime", 
                 "Part1EndTime", 
                 "Part2StartDate", 
                 "Part2StartTime", 
                 "Part2EndTime"]].dtypes)
Part1StartTime    datetime64[ns]
Part1EndTime      datetime64[ns]
Part2StartDate            object
Part2StartTime            object
Part2EndTime              object
dtype: object
Pemasukan Data yang Efisien dengan pandas

Mengurai Tanggal

# Daftar kolom tanggal untuk diurai
date_cols = ["Part1StartTime", 
             "Part1EndTime",

[["Part2StartDate", "Part2StartTime"]]]
# Muat file, mengurai kolom datetime standar dan terpisah survey_df = pd.read_excel("fcc_survey.xlsx", parse_dates=date_cols)
print(survey_df.head(3))
  Part2StartDate_Part2StartTime   Age       ...    SchoolMajor  StudentDebtOwe
0           2016-03-29 21:24:57  28.0       ...            NaN           20000
1           2016-03-29 21:27:14  22.0       ...            NaN             NaN
2           2016-03-29 21:27:13  19.0       ...            NaN             NaN

[3 rows x 98 columns]
Pemasukan Data yang Efisien dengan pandas

Mengurai Tanggal

# Daftar kolom tanggal untuk diurai
date_cols = {"Part1Start": "Part1StartTime", 
             "Part1End": "Part1EndTime",
             "Part2Start": ["Part2StartDate", 
                             "Part2StartTime"]}


# Muat file, mengurai kolom datetime standar dan terpisah survey_df = pd.read_excel("fcc_survey.xlsx", parse_dates=date_cols) print(survey_df.Part2Start.head(3))
0   2016-03-29 21:24:57
1   2016-03-29 21:27:14
2   2016-03-29 21:27:13
Name: Part2Start, dtype: datetime64[ns]
Pemasukan Data yang Efisien dengan pandas

Tanggal Non-Standar

  • parse_dates tidak bekerja untuk format datetime non-standar
  • Gunakan pd.to_datetime() setelah memuat data jika parse_dates tidak bisa
  • Argumen to_datetime():
    • DataFrame dan kolom yang akan dikonversi
    • format: representasi string dari format datetime
Pemasukan Data yang Efisien dengan pandas

Pemformatan Datetime

  • Jelaskan pemformatan string datetime dengan kode dan karakter
  • Lihat strftime.org untuk daftar lengkap
Pemasukan Data yang Efisien dengan pandas

Pemformatan Datetime

Kode Arti Contoh
%Y Tahun (4 digit) 1999
%m Bulan (dengan nol) 03
%d Hari (dengan nol) 01
%H Jam (24 jam) 21
%M Menit (dengan nol) 09
%S Detik (dengan nol) 05
Pemasukan Data yang Efisien dengan pandas

Mengurai Tanggal Non-Standar

Spreadsheet data tanggal dan waktu, menyorot kolom dengan format datetime tidak biasa

format_string = "%m%d%Y %H:%M:%S"

survey_df["Part2EndTime"] = pd.to_datetime(survey_df["Part2EndTime"], format=format_string)
Pemasukan Data yang Efisien dengan pandas

Mengurai Tanggal Non-Standar

print(survey_df.Part2EndTime.head())
0   2016-03-29 21:27:25
1   2016-03-29 21:29:10
2   2016-03-29 21:28:21
3   2016-03-29 21:30:51
4   2016-03-29 21:31:54
Name: Part2EndTime, dtype: datetime64[ns]
Pemasukan Data yang Efisien dengan pandas

Ayo berlatih!

Pemasukan Data yang Efisien dengan pandas

Preparing Video For Download...