Mengonversi data harian menjadi mingguan dengan python

Saat bekerja dengan data pasar saham, terkadang kami ingin mengubah jendela referensi waktu kami. Umumnya harga harian tersedia di bursa saham. Mari kita lihat bagaimana mengubah harga harian menjadi harga mingguan dan bulanan. Anda dapat mengunduh harga harian dari NSE dari [tautan ini](https. // www. nseindia. com/produk/konten/ekuitas/ekuitas/eq_security. htm). Kami akan mengunduh harga harian selama 24 bulan terakhir. Berikut adalah contoh file yang akan kami gunakan Silakan merujuk ke program di bawah ini untuk mengubah harga harian menjadi mingguan. Komentar dalam program akan membantu Anda memahami logika di balik setiap baris. ```python ############################################## . convert_daily_to_weekly. py # desc. mengambil inout sebagai harga harian dan mengubahnya menjadi data mingguan # tanggal. 15-06-2018 # Penulis. conquistadorjd ################################################### . read_csv('15-06-2016-TO-14-06-2018HDFCBANKALLN. csv') # memastikan hanya seri ekuitas yang dianggap df = df. loc[df['Series'] == 'EQ'] # Konversi tanggal ke format datetime panda df['Date'] = pd. to_datetime(df['Date']) # Mendapatkan nomor minggu df['Week_Number'] = df['Date']. dt. minggu # Mendapatkan tahun. Weeknum adalah umum sepanjang tahun sehingga kita perlu membuat indeks unik dengan menggunakan year dan weeknum df['Year'] = df['Date']. dt. tahun # Pengelompokan berdasarkan nilai yang dibutuhkan df2 = df. groupby(['Tahun','Nomor_Minggu']). agg({'Harga Terbuka'. 'pertama', 'Harga Tinggi'. 'maks', 'Harga Rendah'. 'min', 'Harga Tutup'. 'terakhir','Total Kuantitas yang Diperdagangkan'. 'jumlah'}) # df3 = df. groupby(['Tahun','Nomor_Minggu']). agg({'Harga Terbuka'. 'pertama', 'Harga Tinggi'. 'maks', 'Harga Murah'. 'min', 'Harga Tutup'. 'terakhir','Total Kuantitas yang Diperdagangkan'. 'jumlah','Harga Rata-Rata'. 'rata-rata'}) df2. to_csv('Mingguan_OHLC. csv') print('*** Program telah berakhir ***') ``` Setelah Anda memahami harian hingga mingguan, hanya diperlukan modifikasi kecil untuk mengubahnya menjadi data OHLC bulanan. Ini skrip ```python ########################################## . convert_daily_to_monthly. py # desc. ambil inout sebagai harga harian dan ubah menjadi data bulanan # tanggal. 15-06-2018 # Penulis. conquistadorjd ################################################### . read_csv('15-06-2016-TO-14-06-2018HDFCBANKALLN. csv') # memastikan hanya seri ekuitas yang dianggap df = df. loc[df['Series'] == 'EQ'] # Konversi tanggal ke format datetime panda df['Date'] = pd. to_datetime(df['Date']) # Mendapatkan nomor bulan df['Month_Number'] = df['Date']. dt. bulan # Mendapatkan tahun. bulan biasa terjadi selama bertahun-tahun (seolah-olah Anda tidak tahu. ) )untuk kita perlu membuat indeks unik dengan menggunakan tahun dan bulan df['Year'] = df['Date']. dt. tahun # Pengelompokan berdasarkan nilai yang dibutuhkan df2 = df. groupby(['Tahun','Bulan_Nomor']). agg({'Harga Terbuka'. 'pertama', 'Harga Tinggi'. 'maks', 'Harga Murah'. 'min', 'Harga Tutup'. 'terakhir','Total Kuantitas yang Diperdagangkan'. 'jumlah'}) # df3 = df. groupby(['Tahun','Nomor_Minggu']). agg({'Harga Terbuka'. 'pertama', 'Harga Tinggi'. 'maks', 'Harga Murah'. 'min', 'Harga Tutup'. 'terakhir','Total Kuantitas yang Diperdagangkan'. 'jumlah','Harga Rata-Rata'. 'rata-rata'}) df2. to_csv('Bulanan_OHLC. csv') print('*** Program berakhir ***') ``` Saya membuang waktu untuk menemukan 'Harga Terbuka' untuk data mingguan dan bulanan. Saya mencoba beberapa pertanyaan panda yang rumit dan kemudian menyadari hal yang sama dapat dicapai hanya dengan menggunakan fungsi agregat. Tolong beri tahu saya tanggapan Anda


Posting ini ditulis oleh Pravin

Tag

Tinggalkan komentar

Kirim

Di sini, kita akan melihat bagaimana kita dapat mengonversi data harian menjadi data mingguan/bulanan tanpa kehilangan nama kolom dan tanggal sebagai indeks

Saya menggunakan “covid_19_india. csv” dari Kaggle sebagai sampel dataset kami dengan shape(9291,9). Anda dapat mengunduhnya dari tautan di bawah ini

COVID-19 di India

Dataset Novel Corona Virus Disease 2019 di India

www. kaggle. com

Mari mulai dan muat “covid_19_india. csv” kumpulan data

Masukan 1

Keluaran

Seperti yang Anda lihat di atas, tanggal kami adalah tipe string, jadi kami perlu mengonversinya menjadi tipe DateTime

Masukan 2

Keluaran

Sekarang kita bisa melihat bahwa kolom Tanggal ada di objek tanggal. Selain itu, kami membuang beberapa kolom untuk menyederhanakan data. Namun, ini tidak diperlukan, saat mengonversi data harian menjadi mingguan/bulanan/tahunan, kolom kategorikal akan dihapus

Masukan 3

Keluaran

Seperti yang Anda lihat, data harian kami diubah menjadi mingguan tanpa kehilangan nama kolom dan tanggal lain sebagai indeks

Anda juga dapat mengonversi ke bulan hanya dengan menggunakan "m" alih-alih "w". Untuk Misalnya. df. contoh ulang(“m”). berarti(). 'm' selama berbulan-bulan

Bagaimana cara mengonversi data harian menjadi mingguan dengan Python?

Metode 1. menggunakan for-loop Python . 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.

Bagaimana Anda mengubah data harian menjadi data mingguan?

Klik sel di kolom tanggal tabel pivot yang dibuat Excel di spreadsheet. Klik kanan dan pilih "Grup", lalu "Hari. " Masukkan "7" di kotak "Jumlah hari" untuk mengelompokkan berdasarkan minggu. Klik "OK" dan verifikasi bahwa Anda telah mengonversi data harian menjadi data mingguan dengan benar.

Bagaimana cara mengelompokkan data harian menjadi minggu di panda?

Misalnya, Anda dapat menentukan Freq=W-MON jika Anda ingin setiap minggu dimulai setelah Senin (i. e. Selasa) sebagai gantinya. Inilah cara menginterpretasikan output. Penjualan maksimal pada satu hari selama seminggu mulai hari setelah 1/2/2022 adalah 9.

Bagaimana Anda mengonversi data bulanan menjadi data mingguan dengan Python?

Anda dapat menggunakan df. resample() dengan argumen yang sesuai .