İçe aktarmayı değiştirme: tarihleri ayrıştırma

pandas ile Kolaylaştırılmış Veri Alımı

Amany Mahfouz

Instructor

Tarih ve Saat Verisi

  • Tarih ve saatlerin kendine özgü veri türü ve iç gösterimi vardır
  • Tarih-saat değerleri dize gösterimlerine dönüştürülebilir
  • Tarih-saat biçimlendirmesini tanımlamak için ortak bir kod kümesi vardır
pandas ile Kolaylaştırılmış Veri Alımı

pandas ve Tarih-Saatler

  • Tarih-saat sütunları varsayılan olarak nesne (dize) olarak yüklenir
  • Sütunların tarih-saat olduğunu parse_dates bağımsız değişkeniyle belirtin (dtype değil!)
  • parse_dates şunları kabul eder:
    • ayrıştırılacak sütun adları veya numaralarının listesi
    • birleştirilecek ve ayrıştırılacak sütun listelerini içeren bir liste
    • anahtarları yeni sütun adları, değerleri birlikte ayrıştırılacak sütun listeleri olan bir sözlük
pandas ile Kolaylaştırılmış Veri Alımı

pandas ve Tarih-Saatler

Farklı biçimlerde tarih ve saat sütunları olan e-tablo

pandas ile Kolaylaştırılmış Veri Alımı

pandas ve Tarih-Saatler

Standart biçimli sütunları vurgulanan tarih ve saat verilerinin yer aldığı e-tablo

pandas ile Kolaylaştırılmış Veri Alımı

pandas ve Tarih-Saatler

Sadece tarih ve sadece saat sütunları vurgulanan tarih ve saat verilerinin yer aldığı e-tablo

pandas ile Kolaylaştırılmış Veri Alımı

pandas ve Tarih-Saatler

Tarih ve saat verilerinin yer aldığı e-tablo, alışılmadık bir tarih-saat biçimindeki bir sütunu vurguluyor

pandas ile Kolaylaştırılmış Veri Alımı

Tarihleri Ayrıştırma

# Ayrıştırılacak tarih sütunlarını listeleyin
date_cols = ["Part1StartTime", "Part1EndTime"]

# Dosyayı yükleyin, standart tarih-saat sütunlarını ayrıştırın survey_df = pd.read_excel("fcc_survey.xlsx", parse_dates=date_cols)
pandas ile Kolaylaştırılmış Veri Alımı

Tarihleri Ayrıştırma

# Zaman damgası sütunlarının veri türlerini kontrol edin
print(survey_df[["Part1StartTime", 
                 "Part1EndTime", 
                 "Part2StartDate", 
                 "Part2StartTime", 
                 "Part2EndTime"]].dtypes)
Part1StartTime    datetime64[ns]
Part1EndTime      datetime64[ns]
Part2StartDate            object
Part2StartTime            object
Part2EndTime              object
dtype: object
pandas ile Kolaylaştırılmış Veri Alımı

Tarihleri Ayrıştırma

# Ayrıştırılacak tarih sütunlarını listeleyin
date_cols = ["Part1StartTime", 
             "Part1EndTime",

[["Part2StartDate", "Part2StartTime"]]]
# Dosyayı yükleyin, standart ve bölünmüş tarih-saat sütunlarını ayrıştırın 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]
pandas ile Kolaylaştırılmış Veri Alımı

Tarihleri Ayrıştırma

# Ayrıştırılacak tarih sütunlarını listeleyin
date_cols = {"Part1Start": "Part1StartTime", 
             "Part1End": "Part1EndTime",
             "Part2Start": ["Part2StartDate", 
                             "Part2StartTime"]}


# Dosyayı yükleyin, standart ve bölünmüş tarih-saat sütunlarını ayrıştırın 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]
pandas ile Kolaylaştırılmış Veri Alımı

Standart Dışı Tarihler

  • parse_dates standart dışı tarih-saat biçimleriyle çalışmaz
  • parse_dates işe yaramazsa, veriyi yükledikten sonra pd.to_datetime() kullanın
  • to_datetime() bağımsız değişkenleri:
    • Dönüştürülecek DataFrame ve sütun
    • format: tarih-saat biçim dizgesi
pandas ile Kolaylaştırılmış Veri Alımı

Tarih-Saat Biçimlendirme

  • Tarih-saat dizelerini kodlar ve karakterlerle biçimlendirin
  • Tam liste için strftime.org adresine bakın
pandas ile Kolaylaştırılmış Veri Alımı

Tarih-Saat Biçimlendirme

Kod Anlam Örnek
%Y Yıl (4 haneli) 1999
%m Ay (sıfır dolgulu) 03
%d Gün (sıfır dolgulu) 01
%H Saat (24 saat) 21
%M Dakika (sıfır dolgulu) 09
%S Saniye (sıfır dolgulu) 05
pandas ile Kolaylaştırılmış Veri Alımı

Standart Dışı Tarihleri Ayrıştırma

Tarih ve saat verilerinin yer aldığı e-tablo, alışılmadık bir tarih-saat biçimindeki bir sütunu vurguluyor

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

survey_df["Part2EndTime"] = pd.to_datetime(survey_df["Part2EndTime"], format=format_string)
pandas ile Kolaylaştırılmış Veri Alımı

Standart Dışı Tarihleri Ayrıştırma

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]
pandas ile Kolaylaştırılmış Veri Alımı

Haydi pratik yapalım!

pandas ile Kolaylaştırılmış Veri Alımı

Preparing Video For Download...