उदाहरण के रूप में Yandex.Direct आँकड़ों का उपयोग करके एक DataFrame से BigQuery के आंकड़े भेजना

इस लेख में, मैं इस बारे में बात करूँगा कि कैसे मैंने BigQuery और डेटा स्टूडियो का उपयोग करके पूरे संदर्भ में एक ही स्थान पर आँकड़े लाए

मुझे सभी यातायात स्रोतों पर डेटा की कल्पना करने की आवश्यकता थी।

इस कार्य के लिए, मैं डेटा स्टूडियो का उपयोग करता हूं। Google विज्ञापनों को एक उत्कृष्ट तरीके से वहाँ खींचा जा रहा है, लेकिन Yandex Direct के साथ सब कुछ अधिक जटिल है।

मैंने अपने लिए सांख्यिकी आंकड़ों की अर्ध-मैनुअल विधि को चुना: अपने कंप्यूटर से आंकड़े प्राप्त करना और भेजना।

मैं एक DataFrame में विभिन्न वर्गों में दैनिक स्टैटिक्स प्राप्त करता हूं।



और यह बहुत अच्छा है क्योंकि पांडा के पास एक pandas_gbq लाइब्रेरी है जो डेटाफ़्रेम को BigQuery को भेज सकती है।

BigQuery में कौन से आंकड़े स्टोर करने हैं


शुरू करने के लिए, आइए फैसला करें कि हम किन वर्गों के आंकड़े भेजेंगे।
चूंकि हम BigQuery में बहुत सारी जानकारी संग्रहीत कर सकते हैं, इसलिए मैंने दिनों के संदर्भ में अपने लिए आंकड़े बाहर फेंक दिए।

हमें इस तथ्य को भी ध्यान में रखना होगा कि हमें पुनर्लेखन के लिए कम से कम एक महीने के लिए आँकड़े प्राप्त करने की आवश्यकता है, क्योंकि विज्ञापन सिस्टम एक क्लिक के कारण पुराने आँकड़ों को अद्यतन करते हैं।

इसलिए, समय के लिए मैं कुंजियों के संदर्भ में आँकड़ों का उपयोग नहीं करता, क्योंकि यह अक्सर बेमानी है।
मैं कजाकिस्तान गणराज्य के संदर्भ में दैनिक आंकड़ों के उदाहरण पर सब कुछ बताऊंगा। (कॉलम: तारीख और पीके)

अगला, हम इस बारे में बात करेंगे कि डेटाफ्रेम को कैसे संशोधित किया जाए ताकि यह चला जाए।

संशोधन DataFrame



समस्या 1


कुछ RC के लिए, हमें व्यवहार कारकों और रूपांतरणों में खाली क्षेत्र मिलेंगे



इस समस्या को हल करने के लिए, आपको "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) 

और एक संख्यात्मक डेटा प्रकार असाइन करें।

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

समस्या २


एक अलग अनुक्रमित कॉलम जोड़ें। यदि हम ऐसा कोई डेटाफ़्रेम भेजते हैं या डेटा प्रकार dtipe के साथ देखते हैं, तो हम देखते हैं कि तिथियों के साथ कोई कॉलम नहीं है।

इसे ठीक करने के लिए, एक स्तंभ बनाएं जो अनुक्रमित स्तंभ के बराबर होगा।

 f['Date']=f.index 


अगला डेटाफ़्रेम प्राप्त करें



BigQuery के लिए एक DataFrame भेजना


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

हम डेटाफ़्रेम का नाम, डेटासेट का नाम, फ़ाइल का नाम (यह अभी तक अस्तित्व में नहीं हो सकता है), परियोजना का नाम और फ़ाइल कैसे रिकॉर्ड की जाएगी (हमारे मामले में, फ़ाइल पूरी तरह से अधिलेखित हो जाएगी) इंगित करता है।

हम BigQuery में निम्नलिखित प्राप्त करते हैं:



यह केवल DataStudio में डेटा की कल्पना करने के लिए बना हुआ है। अंतिम कोड:

 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') 

आपका ध्यान के लिए धन्यवाद!

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


All Articles