Last chance! 50% off DataCamp Premium
Sale ends in
कंपनियाँ स्प्रेडशीट्स पर चलती हैं। वित्तीय प्रबंधन और बजटिंग से लेकर प्रोजेक्ट मैनेजमेंट और KPI रिपोर्टिंग तक: हर टीम किसी न किसी रूप में स्प्रेडशीट्स पर निर्भर रहती है।
यदि आप इस स्प्रेडशीट-चालित माहौल में एक विश्लेषक के रूप में प्रभावी रहना चाहते हैं, तो यह आवश्यक है कि आप प्रोग्रामेटिक तरीके से स्प्रेडशीट्स में मौजूद डेटा तक पहुँच पाना जानें और अपने विश्लेषणों के परिणामों को स्प्रेडशीट्स में वापस लिखना भी जानें।
प्रक्रिया को स्वचालित करके, आप अपने हितधारकों तक वहीं पहुँचते हैं जहाँ उनका डेटा संग्रहीत है और स्प्रेडशीट्स में डेटा को मैन्युअली निर्यात-आयात करने की झंझट से बचते हैं।
इस ट्यूटोरियल में, हम Google Sheet स्प्रेडशीट में मौजूद डेटा तक पहुँचने, उसका विश्लेषण करने और उसे वापस स्प्रेडशीट में लिखने के सभी आवश्यक चरणों को कवर करेंगे। हम यह सब Python से करेंगे—बिना दोहराए जाने वाले किसी मैन्युअल कदम के!
हम इस ट्यूटोरियल में DataLab का उपयोग करेंगे, जो Google Sheets में डेटा के साथ काम करने के दो तरीके समर्थित करता है:
आप जो भी विकल्प चुनें, साथ चलने के लिए आपको बस एक Google खाता (स्प्रेडशीट रखने के लिए) और एक DataCamp खाता (DataLab उपयोग करने के लिए) चाहिए—दोनों आप निःशुल्क बना सकते हैं!

DataLab संपादक
यह विकल्प तब चुनें जब आप केवल Google Sheet से डेटा पढ़कर Python में उसका विश्लेषण करना चाहते हैं, लेकिन अपने गणनाओं के परिणाम Google Sheet में वापस लिखने की आवश्यकता नहीं है।
स्प्रेडशीट्स में डेटा का विश्लेषण करने से पहले, सुनिश्चित करें कि आपके पास डेटा वाली स्प्रेडशीट हो। यदि आपके पास कोई डेटासेट उपलब्ध नहीं है, तो आप इस ट्यूटोरियल के लिए तैयार की गई Google Sheet से शुरू कर सकते हैं: उदाहरण स्प्रेडशीट खोलें, और Google Sheet में पहुँचने के बाद “File > Make a copy” पर क्लिक करें, नाम दें, और “Make a copy” पर क्लिक करें। यदि आपके पास पहले से विश्लेषण के लिए कोई स्प्रेडशीट है, तो यह चरण छोड़ दें।
अगला कदम DataLab के अंदर एक नया डेटा प्रोजेक्ट बनाना है, जिसे वर्कबुक कहा जाता है। आप या तो शुरू से एक खाली वर्कबुक बना सकते हैं, जो तब उपयोगी है जब आप सारा कोड स्वयं लिखना चाहते हैं, या ऐसी वर्कबुक बनाएँ जिसमें आवश्यक कोड पहले से शामिल हो।
इस ट्यूटोरियल का कोड ऑनलाइन चलाएं और संपादित करें
कोड चलाएंवर्कबुक के अंदर रहते हुए, View > Databases पर क्लिक करें और + आइकन पर क्लिक करें। आपको उन सभी डेटाबेस तकनीकों का एक अवलोकन दिखेगा जिनसे DataLab कनेक्ट हो सकता है:

Google Sheets चुनें। अब आपसे DataCamp को आपकी Google Drive में फ़ाइलों तक पहुँच देने की अनुमति देने के लिए कहा जाएगा।

“Grant permission to Google Drive” पर क्लिक करें। अंत में, एक फ़ाइल पिकर दिखाई देगा:

वह स्प्रेडशीट फ़ाइल चुनें जिससे आप डेटा पढ़ना चाहते हैं। यह या तो हमारी दी गई उदाहरण Google Sheet की आपकी कॉपी होगी या आपकी स्वयं की Google Sheet।
अब आप उस Google Sheets फ़ाइल पर क्वेरी चला सकते हैं जिसे आपने अभी कनेक्ट किया है! आप यह एक SQL सेल से करेंगे, जो DataLab में SQL के साथ डेटाबेस क्वेरी करने के लिए एक बिल्डिंग ब्लॉक है। यदि आपने दिए गए टेम्पलेट से वर्कबुक बनाई है, तो आपके नोटबुक में यह SQL सेल पहले से मौजूद होगा। यदि आपने वर्कबुक शुरू से बनाई है, तो लॉन्चर खोलकर “SQL” पर क्लिक करके इसे जोड़ें:

SQL सेल में, ऊपर बाएँ कोने में Source ड्रॉपडाउन पर क्लिक करें।

वह स्प्रेडशीट चुनें जिसे आप विश्लेषित करना चाहते हैं (उदाहरण में यह "Unicorn Companies" है)। इसके बाद, निम्न SQL क्वेरी लिखें:
SELECT * FROM unicorn_companies
यदि आप Run पर क्लिक करते हैं, तो यह क्वेरी Unicorn Companies Google Sheet के अंदर unicorn_companies शीट की सभी पंक्तियाँ लाएगी और परिणाम को एक नए Pandas DataFrame df में संग्रहीत करेगी:

pandas DataFrame एक तालिका-जैसी डेटा संरचना है जिसका उपयोग आप Python में डेटा संग्रहीत और प्रबंधित करने के लिए कर सकते हैं। आइए एक Python सेल जोड़ें और निम्न कोड चलाएँ, जो डेटासेट में यूनिकॉर्न कंपनियों के लिए प्रति-देश आधार पर median फंडिंग की गणना करता है:
median_funding_df = df.groupby("country")["funding"].median().reset_index()
median_funding_df.columns = ['country', 'median_funding']
median_funding_df

ऊपर वाले SQL सेल में, हमने सारा डेटा लेने के लिए एक सीधी-सादी SQL क्वेरी का उपयोग किया, लेकिन आप उतनी ही आसानी से एक अधिक परिष्कृत SQL स्टेटमेंट का उपयोग कर सकते हैं—जैसे कि संयुक्त राज्य में शीर्ष 10 सबसे मूल्यवान यूनिकॉर्न कंपनियाँ लाना:
SELECT *
FROM unicorn_companies
WHERE country = 'United States'
ORDER BY valuation DESC
LIMIT 10
बस इतना ही! SQL क्वेरी को और कैसे समायोजित किया जा सकता है, जैसे कि शीट के किसी चयनित हिस्से पर ज़ूम इन करना, इस पर और प्रो टिप्स के लिए संबंधित DataLab डॉक्यूमेंटेशन लेख देखें।
जैसा कि पहले उल्लेख किया गया, Google Sheets के साथ यह सहज कनेक्शन केवल Google Sheet से डेटा पढ़ने के लिए उपयोग किया जा सकता है। यदि आप Google Sheets से डेटा पढ़ना और परिणामों को Google Sheets में वापस लिखना—दोनों—चाहते हैं, तो अगले अनुभाग में देखें जहाँ अधिकतम लचीले सेटअप के लिए Google Sheets API का लाभ उठाने का तरीका समझाया गया है।
यह विकल्प तब चुनें जब आप Google Sheet से डेटा पढ़ना और Python में अपनी गणनाओं का परिणाम उसी या किसी अन्य Google Sheet में वापस लिखना चाहते हों।
जैसा कि प्रस्तावना में बताया गया है, लचीलापन बढ़ने के साथ सेटअप थोड़ा अधिक पेचीदा हो जाता है। विशेष रूप से, हम जिन चरणों का पालन करेंगे, वे हैं:
आइए इन्हें एक-एक करके समझें।
Google Sheets में डेटा तक प्रोग्रामेटिक तरीके से पहुँचने के लिए, आपको एक Google service account बनाना होगा, जो एक विशेष प्रकार का खाता होता है जिसे कार्यक्रमों द्वारा स्प्रेडशीट जैसी Google संसाधनों तक पहुँच के लिए इस्तेमाल किया जा सकता है। आप फिर इस सेवा खाते का उपयोग DataLab को Google Sheets से जोड़ने के लिए करेंगे।
जिस भी Google खाते में आप स्प्रेडशीट्स तक पहुँचना चाहते हैं, उसके लिए यह Google service account आपको केवल एक बार सेटअप करना होगा; उसी खाते में अगली बार स्प्रेडशीट डेटा के साथ काम करना चाहें तो यह चरण छोड़ सकते हैं।
सेवा खाता बनाने और आवश्यक क्रेडेंशियल्स जनरेट करने के लिए नीचे दिए गए चरणों का पालन करें।
अब आपके पास एक सेवा खाता और एक JSON क्रेडेंशियल्स फ़ाइल है! अपने Downloads फ़ोल्डर या जहाँ भी JSON फ़ाइल डाउनलोड हुई है, वहाँ जाएँ, उसे खोलें और देखें। यह कुछ इस तरह दिखनी चाहिए:
{
"type": "service_account",
"project_id": "<your-project-name>",
"private_key_id": "<something-private>",
"private_key": "-----BEGIN PRIVATE KEY-----\nM<some-very-private-stuff\n",
"client_email": "gsheets-operator@steam-verve-386214.iam.gserviceaccount.com",
"client_id": "123456789012345678901",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/gsheets-operator%40<project-name>.iam.gserviceaccount.com"
}
उसमें “client_email” फ़ील्ड है: gsheets-operator@<google-project-name>.iam.gserviceaccount.com। इस ईमेल को अपने क्लिपबोर्ड पर कॉपी करें; अगले चरण में इसकी आवश्यकता होगी।
स्प्रेडशीट्स में डेटा का विश्लेषण करने से पहले, सुनिश्चित करें कि आपके पास डेटा वाली स्प्रेडशीट हो। यदि आपके पास कोई डेटासेट उपलब्ध नहीं है, तो आप इस ट्यूटोरियल के लिए तैयार की गई Google Sheet से शुरू कर सकते हैं: उदाहरण स्प्रेडशीट खोलें और Google Sheet में पहुँचने के बाद “File > Make a copy” पर क्लिक करें, नाम दें, और “Make a copy” पर क्लिक करें। यदि आपके पास पहले से वह स्प्रेडशीट है जिसका आप विश्लेषण करना चाहते हैं, तो बस वही स्प्रेडशीट खोलें।
चाहे आप उदाहरण स्प्रेडशीट की डुप्लिकेट के साथ काम कर रहे हों या अपनी स्वयं की स्प्रेडशीट के साथ, आपको पहले चरण में बनाए गए Google सेवा खाते को उस स्प्रेडशीट तक पहुँच देनी होगी:

ठीक है, सेवा खाता: हो गया। सही एक्सेस वाली Google स्प्रेडशीट: हो गई। अब Python कोड लिखने का समय है!
अगला कदम DataLab के अंदर एक नया डेटा प्रोजेक्ट बनाना है, जिसे वर्कबुक भी कहा जाता है। आप या तो शुरू से एक खाली वर्कबुक बना सकते हैं, जो तब उपयोगी है जब आप सारा कोड स्वयं लिखना चाहते हैं, या ऐसी वर्कबुक बनाएँ जिसमें सारा कोड शामिल हो।
इस ट्यूटोरियल का कोड ऑनलाइन चलाएं और संपादित करें
कोड चलाएंनव-निर्मित वर्कबुक में सेवा खाते की क्रेडेंशियल्स JSON का उपयोग करने के लिए, आपको उसे DataLab में संग्रहीत करना होगा।
आप JSON की सामग्रियाँ अपनी नई वर्कबुक की किसी कोड सेल में कॉपी-पेस्ट कर सकते हैं:

यह सुरक्षित तरीका नहीं है और अनुशंसित भी नहीं है। यदि आप अपनी नोटबुक किसी और के साथ साझा करते हैं, तो वे क्रेडेंशियल्स को स्पष्ट पाठ में देख सकेंगे। तब वे आपकी पहचान का दुरुपयोग करके उन संसाधनों तक पहुँच सकते हैं जिन तक इस सेवा खाते की पहुँच है।
यह तरीका आपको हर उस वर्कबुक में यह कोड दोहराने के लिए भी मजबूर करेगा जहाँ आप स्प्रेडशीट डेटा तक पहुँच बनाना चाहते हैं। यदि आप क्रेडेंशियल्स रोटेट करना चाहते हैं, तो आपको हर वर्कबुक में जाकर संपादन करना पड़ेगा।
एक अधिक सुरक्षित और स्केलेबल तरीका है JSON को तथाकथित environment variable में संग्रहीत करना। जब आप इस environment variable को कनेक्ट करते हैं, तो यह आपके Python सत्र में उपलब्ध हो जाएगा। अपनी वर्कबुक में:
GOOGLE_JSON पर सेट करें
सभी फ़ील्ड भरने के बाद, “Create,” “Next,” और अंत में “Connect” पर क्लिक करें। आपका DataLab सत्र पुनः आरंभ होगा, और GOOGLE_JSON अब आपकी वर्कबुक में एक environment variable के रूप में उपलब्ध होगा। आप नीचे दिया गया Python कोड चलाकर इसकी पुष्टि कर सकते हैं:
import os
google_json = os.environ["GOOGLE_JSON"]
print(google_json)
यदि आप वही सेवा खाते की क्रेडेंशियल्स किसी अन्य वर्कबुक में पुन: उपयोग करना चाहते हैं, तो आपको environment variable फिर से सेट करने की आवश्यकता नहीं है: आप अन्य वर्कबुक में भी उसी environment variable का उपयोग कर सकते हैं।
अब मज़ेदार हिस्सा: Google Sheets डेटा से कनेक्ट करने के लिए Python कोड लिखना।
अपनी Google API खाते से कनेक्शन सेट करने के लिए आवश्यक सभी पैकेज इंस्टॉल और इम्पोर्ट करके शुरू करें। हम google-auth का उपयोग Google API के विरुद्ध प्रमाणीकरण के लिए, gspread का उपयोग Google स्प्रेडशीट्स के साथ सरल इंटरफ़ेस के लिए, और pandas का उपयोग Python में सारणीबद्ध डेटा प्रबंधन के लिए करेंगे।
%%capture
!pip install gspread
from google.oauth2 import service_account
import pandas as pd
import gspread
import json
import os
GOOGLE_JSON environment variable को लोड करें और एक वेरिएबल में संग्रहीत करें:
import os
google_json = os.environ["GOOGLE_JSON"]
सेवा खाते की क्रेडेंशियल्स json से एक क्रेडेंशियल्स ऑब्जेक्ट बनाएँ:
service_account_info = json.loads(google_json)
credentials = service_account.Credentials.from_service_account_info(service_account_info)
क्रेडेंशियल्स को सही ‘API scope’ असाइन करें ताकि उसे Google Sheet स्प्रेडशीट के साथ इंटरफ़ेस करने की सही अनुमतियाँ मिलें:
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
creds_with_scope = credentials.with_scopes(scope)
इन स्कोप्ड क्रेडेंशियल्स के साथ नया क्लाइंट बनाएँ:
client = gspread.authorize(creds_with_scope)
क्लाइंट तैयार होने पर, हम पहले बनाई गई स्प्रेडशीट से डेटा पढ़ सकते हैं।
सबसे पहले, स्प्रेडशीट URL से एक नया शीट इंस्टेंस बनाएँ:
spreadsheet = client.open_by_url('https://docs.google.com/spreadsheets/d/spreadsheet_id/edit#gid=0')
अगले चरण में, उस वर्कशीट (Google स्प्रेडशीट के टैब) पर आएँ जिससे आप डेटा लेना चाहते हैं। इंडेक्स 0 का उपयोग करके पहली शीट लेते हैं:
worksheet = spreadsheet.get_worksheet(0)
सबसे पहले, सभी रिकॉर्ड्स को JSON के रूप में प्राप्त करें:
records_data = worksheet.get_all_records()
इसके बाद, JSON रिकॉर्ड्स को pandas DataFrame में बदलें:
records_df = pd.DataFrame.from_dict(records_data)
records_df
सफलता!
अब आप Google स्प्रेडशीट से पढ़े गए डेटा का Python में विश्लेषण कर सकते हैं। नीचे दिया गया न्यूनतम कोड यह मानता है कि आप उदाहरण स्प्रेडशीट के साथ काम कर रहे हैं। यदि आप किसी अन्य डेटासेट के साथ काम कर रहे हैं, तो ये चरण काम नहीं करेंगे। गहराई में जाने के लिए DataCamp का Data Manipulation with pandas कोर्स देखें!
आइए देशवार median फंडिंग की गणना करें:
median_funding_df = records_df.groupby("country")["funding"].median().reset_index()
median_funding_df.columns = ['country', 'median_funding']
median_funding_df
यदि आप चाहते हैं कि जिन स्प्रेडशीट उपयोगकर्ताओं के साथ आप सहयोग कर रहे हैं वे आपके कार्य के परिणाम स्प्रेडशीट में देखें, तो आप अपनी Python विश्लेषण के परिणाम मूल स्प्रेडशीट के अंदर एक नई Google वर्कशीट (अर्थात् टैब) में वापस लिख सकते हैं।
इस उदाहरण में, यदि नया वर्कशीट median_country अभी मौजूद नहीं है, तो हम उसे बनाते हैं, और फिर median_funding_df DataFrame की सामग्री, कॉलम नामों वाले हेडर सहित, डालते हैं। यह कोड AI Assistant की मदद से जनरेट किया गया था!
# Convert the median_funding_df DataFrame to a list of lists
medians_list = median_funding_df.values.tolist()
# Add the header row to the list
medians_list.insert(0, median_funding_df.columns.tolist())
# Check if the 'median_by_country' sheet already exists
sheet_titles = [sheet.title for sheet in spreadsheet.worksheets()]
sheet_name = "median_by_country"
if sheet_name not in sheet_titles:
# Create a new worksheet named 'median_by_country' in the Google Sheet
medians_sheet = spreadsheet.add_worksheet(title=sheet_name, rows=len(medians_list), cols=len(medians_list[0]))
else:
medians_sheet = spreadsheet.worksheet(sheet_name)
# Write the medians_list to the new worksheet
medians_sheet.clear()
medians_sheet.insert_rows(medians_list, row=1)
यदि आप अपनी स्प्रेडशीट पर वापस जाएँ, तो आपको DataFrame के डेटा के साथ एक नया वर्कशीट दिखाई देगा! यह परिणामों को ‘वापस लिखना’ तभी संभव है जब आप Google Sheets API-आधारित तरीके से Google Sheets से कनेक्ट करें; न कि इस ट्यूटोरियल में पहले प्रस्तुत DataCamp के बिल्ट-इन Google Sheets कनेक्टर से।
आपकी जरूरतों के आधार पर, Python के साथ Google Sheets में डेटा का विश्लेषण या तो बेहद सहज हो सकता है या इसके लिए प्रारंभिक सेटअप का एक अच्छा-खासा हिस्सा जरूरी हो सकता है। यदि आप केवल शीट से डेटा पढ़ना चाहते हैं, तो बिल्ट-इन कनेक्टर अपनाएँ और पाँच से भी कम क्लिक में शुरू करें। यदि आप Google Sheets से डेटा पढ़ने के साथ-साथ उस पर डेटा लिखना भी चाहते हैं, तो Google Sheets API सक्षम करना और एक सेवा खाता सेट करना फायदेमंद है।
दोनों ही स्थितियों में, एक बार जब चीजें ठीक से कॉन्फ़िगर हो जाती हैं, तो Google Sheets से डेटा एक्सेस करना लगभग उतना ही आसान हो जाता है जितना कि किसी CSV फ़ाइल पर क्वेरी चलाना। बड़ा लाभ यह है कि आप अपने हितधारकों तक वहीं पहुँचते हैं जहाँ वे हैं: संभव है कि आपके कुछ सहकर्मी स्प्रेडशीट्स के पक्षधर हों।
थकाऊ CSV एक्सपोर्ट्स का दौर गया—और अब शक्तिशाली, स्वचालित वर्कफ़्लोज़ का समय है, जिनसे आप DataLab छोड़े बिना Google Sheets डेटा के साथ काम कर सकते हैं।