Mengirim statistik dari DataFrame ke BigQuery menggunakan statistik Yandex.Direct sebagai contoh

Di artikel ini, saya akan berbicara tentang bagaimana saya membawa statistik di seluruh konteks di satu tempat menggunakan BigQuery dan Data Studio

Saya perlu memvisualisasikan data tentang semua sumber lalu lintas.

Untuk tugas ini, saya menggunakan Data Studio. Iklan Google ditarik ke sana dengan sangat baik, tetapi dengan Yandex Direct semuanya menjadi lebih rumit.

Saya memilih metode statistik statistik semi-manual untuk diri saya sendiri: menerima dan mengirim statistik dari komputer saya.

Saya mendapatkan statika setiap hari di berbagai bagian dalam DataFrame.



Dan ini bagus karena panda memiliki pandas_gbq library yang dapat mengirim DataFrames ke BigQuery.

Statistik apa yang harus disimpan di BigQuery


Untuk mulai dengan, mari kita memutuskan bagian mana dari statistik yang akan kami kirim.
Karena kami dapat menyimpan banyak informasi di BigQuery, saya membuang statistik untuk diri saya sendiri dalam hitungan hari.

Kami juga perlu mempertimbangkan fakta bahwa kami perlu mendapatkan statistik setidaknya selama sebulan untuk menulis ulang, karena sistem periklanan memperbarui statistik lama karena klik.

Oleh karena itu, untuk saat ini, saya tidak menggunakan statistik dalam konteks kunci untuk diri saya sendiri, karena sering kali berlebihan.
Saya akan menceritakan semuanya pada contoh statistik harian dalam konteks Republik Kazakhstan. (kolom: tanggal dan PK)

Selanjutnya, kita akan berbicara tentang cara memodifikasi DataFrame sehingga berjalan.

Modifikasi DataFrame



Masalah 1


Untuk beberapa RC, kami akan mendapatkan bidang kosong dalam faktor perilaku dan konversi



Untuk mengatasi masalah ini, Anda harus mengganti kontra dengan "0".

f['Conversions'].replace(['--'],[0],inplace=True) f['CostPerConversion'].replace(['--'],[0],inplace=True) f['ConversionRate'].replace(['--'],[0],inplace=True) f['AvgPageviews'].replace(['--'],[0],inplace=True) f['BounceRate'].replace(['--'],[0],inplace=True) 

Dan menetapkan tipe data numerik.

 f[["Conversions","CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]]=f[["Conversions","CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]].apply(pd.to_numeric) 

Masalah 2


Tambahkan kolom yang diindeks secara terpisah. Jika kami mengirim DataFrame seperti itu atau melihat tipe data dengan dtipe, kami melihat bahwa tidak ada kolom dengan tanggal.

Untuk memperbaiki ini, buat kolom yang akan sama dengan kolom yang diindeks.

 f['Date']=f.index 


Dapatkan DataFrame berikutnya



Mengirim DataFrame ke BigQuery


 pandas_gbq.to_gbq(f,' .',project_id=' ',if_exists='replace') 

Kami menunjukkan nama DataFrame, nama dataset, nama file (mungkin belum ada), nama proyek dan bagaimana file akan direkam (dalam kasus kami, file akan sepenuhnya ditulis ulang).

Kami mendapatkan yang berikut ini di BigQuery:



Tetap hanya untuk memvisualisasikan data dalam DataStudio. Kode Akhir:

 f['Date']=f.index f['Conversions'].replace(['--'],[0],inplace=True) f['CostPerConversion'].replace(['--'],[0],inplace=True) f['ConversionRate'].replace(['--'],[0],inplace=True) f['AvgPageviews'].replace(['--'],[0],inplace=True) f['BounceRate'].replace(['--'],[0],inplace=True) f[["Conversions", "CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]] = f[["Conversions", "CostPerConversion","ConversionRate","AvgPageviews","BounceRate"]].apply(pd.to_numeric) pandas_gbq.to_gbq(f, 'YD_Days.my_client_rk', project_id='my_project',if_exists='replace') 

Terima kasih atas perhatian anda!

Source: https://habr.com/ru/post/id454172/


All Articles