Pada artikel ini saya akan menunjukkan 4 metode berbeda untuk mengonversi data harian menjadi mingguan di Pandas dan membandingkan kinerjanya Show
TantanganBaru-baru ini, di salah satu kelas pascasarjana saya, saya diminta untuk mengevaluasi kasus harian Covid-19 di berbagai negara di Amerika Serikat selama setahun terakhir menggunakan Pandas dan Jupyter Notebook. Tantangannya adalah menyajikan temuan sebagai data mingguan, bukan harian. Sebagai pemula dalam menggunakan Pandas, tugas sederhana ini awalnya menakutkan bagi saya, tetapi dalam proses menyelesaikan tugas ini saya telah mengembangkan 4 metode berbeda untuk mengonversi data harian menjadi data mingguan File csv yang digunakan dalam artikel ini tersedia untuk umum di usafacts. halaman web org import os Pertama, mari siapkan file cvs untuk dikerjakan
cases_states = cases.query("State == 'CA' | State == 'OR' | State == _Metode 1. menggunakan Python for-loopSeperti yang telah saya pelajari sekarang, menggunakan for-loop Python untuk mengulangi data di Pandas bukanlah cara yang paling efisien untuk mengubah data harian menjadi mingguan. Hanya mengulang dengan Python for-loop tidak memanfaatkan fungsi bawaan yang ditawarkan Pandas dan ini adalah cara paling lambat untuk menyelesaikan tugas yang ada. Namun, di awal perjalanan for-loop ini tampaknya merupakan cara termudah untuk mengonversi kolom data harian menjadi mingguan, jadi saya mulai dengan mengimplementasikan fungsi yang melakukan itu Fungsi new_case_count() mengambil objek DataFrame, mengulanginya dan mengonversi indeks, yang merupakan tanggal dalam format string, ke format Pandas Datetime. Berdasarkan tanggal hari dalam seminggu, jumlah kasus baru setiap minggu dihitung dan disimpan dalam daftar. Fungsi mengembalikan daftar jumlah kasus baru mingguan untuk setiap negara bagian Untuk penyederhanaan, output untuk metode ini dan lainnya hanya menampilkan data 5 minggu terakhir def new_case_count(state_new_cases): Metode 2. pelabelan ulang dan groupby()Upaya saya berikutnya untuk mengonversi data harian menjadi mingguan tidak melibatkan for-loop apa pun. Namun, itu masih merupakan metode paling lambat kedua dari keempatnya Fungsi rename_columns_dates() mengambil objek Seri dan mengonversi indeks, yang merupakan tanggal dalam format string, ke format Pandas Datetime. Tanggal diberi label ulang dengan tanggal untuk hari Senin minggu ini dalam format '%Y/%m/%d' diikuti oleh pembatas (tanda %) dan sejumlah hari di mana tanggal saat ini diimbangi dari hari Senin minggu ini. Fungsi mengembalikan string yang mewakili pelabelan tanggal baru. Misalnya, untuk hari Senin 25/01/2021 string yang dikembalikan adalah '2021/01/25%0', untuk hari Selasa 26/01/2021 string yang dikembalikan adalah '2021/01/25%1', dan seterusnya Selanjutnya, kasus baru dikelompokkan setiap minggu dengan memisahkan label data pada pembatas (%) dan menjumlahkan nilai untuk grup yang memiliki hari Senin yang sama dengan tanggalnya. def rename_columns_dates(new_cases_index): Metode 3. contoh ulang()Metode ini menggunakan fungsi resample(). Saya menemukan beberapa artikel di Medium di sini dan di sini tentang cara mengonversi data harian menjadi mingguan dengan resample(). Setelah membuat beberapa perubahan pada kerangka data, saya mengaktifkan dan menjalankan metode ini Ini adalah yang tercepat kedua dari empat seperti yang ditunjukkan di akhir artikel ini new_cases_daily_total_modified = new_cases_daily_total.T.reset_index()_ Metode 4. berkelompok()Ide untuk metode ini datang kepada saya setelah membaca saran tentang stackoverflow. Saya senang Anda dapat mengelompokkan kolom sebanyak 7 sekaligus hanya dalam satu baris. Namun, kesederhanaan ini harus dibayar dengan kehilangan label tanggal Anda dan alih-alih menggunakan angka sebagai indeks, 0–53 dalam kasus ini Untuk memperbaikinya saya mendapatkan ide untuk membuat rentang tanggal yang diperlukan dengan menggunakan pd. period_range(), mengubah rentang tanggal menjadi Seri dan menambahkannya ke DataFrame yang sekarang memiliki data mingguan. Fungsi period_range() mengembalikan PeriodIndex frekuensi tetap. Periode tanggal dalam format ini terlihat seperti ini. 'Tanggal Senin/Tanggal Minggu'. Anda dapat menyimpannya apa adanya atau membagi string pada pembatas ('/') agar tanggal Senin menandai awal minggu Metode ini ternyata merupakan metode tercepat di antara empat metode yang diuji new_cases_groupby_total_method_4 = new_cases_daily_total.groupby([[i//7 for i in range(0,378)]], DataFrame after groupby() date_range Series: cases_states = cases.query("State == 'CA' | State == 'OR' | State == _0Evaluasi kinerjaWaktu eksekusi setiap metode diukur. Saya menggunakan %%timeit untuk mengukur waktu eksekusi di Notebook Jupyter dengan menempatkan %%timeit di bagian atas setiap sel metode. Untuk membandingkan kinerja keempat metode ini, saya telah menjalankannya di Jupyter Notebook 10 kali berturut-turut Penting untuk diingat bahwa ukuran sampel dari 10 proses sangat kecil dan ini hanya sekilas tentang performa metode Bagaimana cara mengubah hari menjadi minggu di Excel?ROUNDDOWN(A2/7,1) . Di bagian pertama rumus ini, nilai di sel A2 dibagi 7 dan hasilnya dibulatkan ke bawah hingga satu desimal. IF(ROUNDDOWN(A2/7,1)=1, ”minggu”, ”minggu”).
Bagaimana cara membuat jadwal mingguan di Excel?Membuat Jadwal Kerja di Excel . Buka Excel dan mulai spreadsheet kosong baru Pilih sel A1 hingga E2 dan klik "Gabungkan dan Pusatkan" Ketik "Jadwal Mingguan" atau apa pun yang Anda ingin beri nama jadwal Anda di A1. E2 Pilih ukuran font Anda dan ratakan tengah Pilih sel F1 hingga H2 dan dari dropdown "Borders", pilih semua batas Bagaimana cara memfilter data mingguan di Excel?Filter berbagai data . Pilih sel mana saja dalam rentang Pilih Data > Filter Pilih panah tajuk kolom Pilih Filter Teks atau Filter Angka, lalu pilih perbandingan, seperti Antara Masukkan kriteria filter dan pilih OK Bagaimana cara mengonversi data harian menjadi bulanan di Excel?Untuk mengubah tanggal menjadi bulan, gunakan fungsi TEXT di excel. Ketik =TEXT(sel u kutip, “mmmm”). . Letakkan 10 di sel kosong Salin sel itu, seperti dengan menggunakan CTRL + C Pilih sel yang akan ditingkatkan Pilih Beranda… Tempel… Tempel Spesial… Tambahkan opsi item menu, lalu klik OK |