Gabungkan Lajur Tarikh dan Masa Menggunakan Panda
Apabila bekerja dengan data temporal, selalunya perlu menggabungkan lajur tarikh dan masa untuk mendapatkan satu nilai cap masa. Pandas menyediakan pelbagai pilihan untuk mencapai ini, termasuk fungsi pd.to_datetime().
Menggabungkan Rentetan dan Menggunakan pd.to_datetime()
Dalam beberapa senario, tarikh anda dan lajur masa disimpan sebagai rentetan. Untuk menggabungkannya, anda hanya boleh menggabungkannya dengan ruang seperti berikut:
df['Date'] + ' ' + df['Time']
Setelah rentetan disatukan, anda boleh menggunakan pd.to_datetime() untuk menukarnya menjadi objek DatetimeIndex:
pd.to_datetime(df['Date'] + ' ' + df['Time'])
Pendekatan ini membolehkan anda menggunakan format kesimpulan rentetan bercantum, yang biasanya merupakan gabungan format tarikh dan masa bagi lajur individu.
Menggunakan format= Parameter
Walau bagaimanapun, jika rentetan tarikh dan masa anda tidak dalam format piawai, atau jika anda ingin menentukan format secara eksplisit, anda boleh menggunakan parameter format= seperti berikut:
pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y%H:%M:%S')
Di sini, anda menentukan format tepat rentetan bercantum, memastikan penukaran yang tepat.
Menghuraikan Tarikh Terus
Sebagai alternatif kepada rentetan penggabungan, anda juga boleh menghuraikan maklumat tarikh dan masa secara langsung menggunakan pd.read_csv() dengan parameter parse_dates. Parameter ini membolehkan anda menentukan senarai lajur untuk dihuraikan sebagai objek datetime.
Sebagai contoh, jika data anda disimpan dalam fail CSV bernama "data.csv":
import pandas as pd df = pd.read_csv("data.csv", parse_dates=[['Date', 'Time']])
Dalam kes ini, Pandas akan menghuraikan lajur yang ditentukan secara automatik ke dalam DatetimeIndex.
Pertimbangan Prestasi
Apabila bekerja dengan set data yang besar, prestasi menjadi penting. Menggabungkan rentetan dan kemudian menukarnya kepada datetime mengambil masa yang lebih lama daripada menghurai terus maklumat tarikh dan masa. Seperti yang ditunjukkan oleh hasil pemasaan berikut menggunakan perintah ajaib %timeit:
# Sample dataframe with 10 million rows df = pd.concat([df for _ in range(1000000)]).reset_index(drop=True) # Time to combine strings and convert to datetime %timeit pd.to_datetime(df['Date'] + ' ' + df['Time']) # Time to parse dates directly %timeit pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y%H:%M:%S')
Hasilnya menunjukkan bahawa penghuraian langsung adalah lebih pantas, terutamanya untuk set data yang besar.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Lajur Tarikh dan Masa dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!