Ana içeriğe geç

Python ile Google Sheets’te Veri Nasıl Analiz Edilir: Adım Adım Rehber

Python kullanarak Google Sheets’te verileri analiz etme, dönüştürme ve tekrar yazma adımlarını içeren ayrıntılı rehberimizle veri analizi becerilerinizi geliştirin.
· 11 dk. oku

Yapay Zeka ile Keşfedin

Şirketlerin bel kemiği e-tablolardır. Finansal yönetim ve bütçelemeden proje yönetimi ve KPI raporlamaya kadar her ekip, bir şekilde e-tablolara dayanır.

E-tablo odaklı bu ortamda analist olarak etkili olmak istiyorsanız, e-tablolardaki verilere programatik olarak nasıl erişeceğinizi ve analiz sonuçlarınızı e-tablolara nasıl geri yazacağınızı bilmeniz kritik önem taşır.

Süreci otomatikleştirerek, paydaşlarınıza verilerinin bulunduğu yerde ulaşabilir ve verileri e-tablolara manuel olarak dışa/içe aktarma zahmetinden kurtulabilirsiniz.

Bu eğitimde, bir Google Sheet e-tablosunda yer alan verilere erişmek, bunları analiz etmek ve sonuçları tekrar bir e-tablosuna yazmak için gerekli tüm adımları ele alacağız. Tüm bunları, tekrarlayan manuel adımlar olmadan Python ile yapacağız!

Bu eğitimde DataLab kullanacağız; Google Sheets verileriyle çalışmanın iki yolunu destekler:

  • Yerleşik Google Sheets bağlayıcısı ile: açık ara en basit yöntemdir, ancak yalnızca Google Sheets’ten veri okunmasını destekler; Google Sheets’e veri yazmayı desteklemez.
  • Google Sheets API’si ile: daha fazla kurulum gerektirir ancak maksimum esneklik sağlar; Google Sheets’ten veri okuyabilir ve verileri Google Sheets’e geri yazabilirsiniz.

Hangi seçeneği tercih ederseniz edin, takip edebilmek için ihtiyacınız olan tek şey bir Google hesabı (e-tabloyu barındırmak için) ve bir DataCamp hesabıdır (DataLab’i kullanmak için). Her ikisini de ücretsiz oluşturabilirsiniz!

DataLab düzenleyicisi

Yerleşik Google Sheets Bağlayıcısı ile

Bu seçeneği, yalnızca bir Google Sheet’ten verileri Python’da analiz etmek için okumak istiyor ve hesaplamalarınızın sonuçlarını bir Google Sheet’e geri yazmayı düşünmüyorsanız seçin.

1. Verilerle bir Google E-Tablosu oluşturun

E-tablosunda veri analiz edebilmeden önce, içinde veri olan bir e-tablosuna sahip olduğunuzdan emin olmanız gerekir. Elinizde bir veri kümesi yoksa, bu eğitim için hazırladığımız bir Google Sheet ile başlayabilirsiniz: örnek e-tablosunu açın ve Google Sheet içindeyken “Dosya > Kopyasını oluştur” seçeneğine tıklayın, bir ad belirtin ve “Kopyasını oluştur” deyin. Zaten analiz etmek istediğiniz verilerin bulunduğu bir e-tablosu varsa bu adımı atlayabilirsiniz.

2. Yeni bir çalışma kitabı oluşturun

Sırada DataLab içinde bir veri projesi, yani bir çalışma kitabı oluşturmak var. Ya tüm kodu kendiniz yazmak istiyorsanız sıfırdan boş bir çalışma kitabı oluşturabilir ya da kodu zaten eklenmiş bir çalışma kitabı oluşturabilirsiniz.

Bu eğitimdeki kodu çevrimiçi olarak çalıştırın ve düzenleyin

Kodu çalıştır

3. Bir bağlantı ayarlayın

Bir çalışma kitabındayken Görünüm > Veritabanları’na tıklayın ve + simgesine basın. DataLab’in bağlanmanıza izin verdiği tüm veritabanı teknolojilerinin bir özetini göreceksiniz:

Google Sheets’i seçin. Şimdi DataCamp’e Google Drive’ınızdaki dosyalara erişim izni vermeniz istenecek.

“Google Drive’a izin ver” seçeneğine tıklayın. Son olarak bir dosya seçici açılacaktır:

image10.png

Veri okumak istediğiniz E-Tablo dosyasını seçin. Bu, sağladığımız örnek Google Sheet’in kopyası ya da kendi Google Sheet’iniz olabilir.

4. Google Sheets dosyasını sorgulayın

Artık az önce bağlandığınız Google Sheets dosyasını sorgulayabilirsiniz! Bunu, DataLab’de veritabanlarını SQL ile sorgulamak için kullanılan bir yapı taşı olan bir SQL hücresiyle yapacaksınız. Sağlanan şablondan bir çalışma kitabı oluşturduysanız, bu SQL hücresi defterinizde zaten hazırdır. Sıfırdan bir çalışma kitabı başlattıysanız, başlatıcıyı açıp “SQL”’e tıklayarak ekleyebilirsiniz:

image11.png

SQL hücresinin içinde, sol üst köşedeki Kaynak açılır menüsüne tıklayın.

image1.png

Analiz etmek istediğiniz e-tablosunu seçin (örnek durumda "Unicorn Companies"). Ardından şu SQL sorgusunu yazın:

SELECT * FROM unicorn_companies

Çalıştır’a tıklarsanız, bu sorgu Unicorn Companies Google Sheet içindeki unicorn_companies sayfasındaki tüm satırları çeker ve sonucu yeni bir Pandas DataFrame’i olan df’de saklar:

image6.png

Pandas DataFrame, Python’da verileri saklamak ve işlemek için kullanabileceğiniz, tablo benzeri bir veri yapısıdır. Bir Python hücresi ekleyelim ve veri kümesindeki unicorn şirketler için ülke bazında medyan yatırımı hesaplayan aşağıdaki kodu çalıştıralım:

median_funding_df = df.groupby("country")["funding"].median().reset_index()
median_funding_df.columns = ['country', 'median_funding']
median_funding_df

image3.png

Yukarıdaki SQL hücresinde, tüm verileri almak için basit bir SQL sorgusu kullandık; ancak örneğin Amerika Birleşik Devletleri’ndeki en değerli ilk 10 unicorn şirketi getirmek için daha gelişmiş bir SQL ifadesi de kullanabilirsiniz:

SELECT *
FROM unicorn_companies
WHERE country = 'United States'
ORDER BY valuation DESC
LIMIT 10

Hepsi bu kadar! SQL sorgusunu, örneğin bir sayfadaki belirli bir seçime odaklanacak şekilde nasıl daha da ince ayar yapabileceğinize dair ipuçları için ilgili DataLab dokümantasyon makalesine göz atın.

Daha önce de belirtildiği gibi, Google Sheets ile bu kesintisiz bağlantı yalnızca bir Google Sheet’ten veri okumak için kullanılabilir. Hem verileri okumak hem de sonuçları Google Sheets’e geri yazmak istiyorsanız, maksimum esneklik için Google Sheets API’sinden nasıl yararlanabileceğinizi açıklayan bir sonraki bölüme bakın.

Google Sheets API’sini Kullanma

Bu seçeneği, bir Google Sheet’ten veri okumak ve Python’daki hesaplamalarınızın sonucunu aynı ya da başka bir Google Sheet’e geri yazmak istiyorsanız seçin.

Girişte de belirtildiği gibi, esneklikteki artış daha kapsamlı bir kurulum gerektirir. Özel olarak şu adımları izleyeceğiz:

  • Bir Google Hizmet Hesabı yapılandırın
  • Verilerle bir Google e-tablosu oluşturun
  • Yeni bir çalışma kitabı oluşturun
  • Hizmet hesabı kimlik bilgilerinizi DataLab’de saklayın
  • Google Sheets verilerini okuyun
  • Verileri Python’da analiz edin
  • Sonuçları Google Sheets’e yazın

Şimdi her birine ayrı ayrı bakalım.

1. Bir Google Hizmet Hesabı Yapılandırın

Google Sheets’teki verilere programatik olarak erişmek için, bir Google hizmet hesabı oluşturmanız gerekir. Bu, bir e-tablo gibi Google kaynaklarına programlar tarafından erişmek için kullanılabilen özel bir hesap türüdür. Daha sonra bu hizmet hesabını kullanarak DataLab’i Google Sheets’e bağlayacaksınız.

Erişmek istediğiniz her Google hesabı için bu Google hizmet hesabını yalnızca bir kez kurmanız gerekir; aynı hesaptaki e-tablo verileriyle yeniden çalışmak istediğinizde bu adımı atlayabilirsiniz.

Hizmet hesabını oluşturmak ve gerekli kimlik bilgilerini üretmek için aşağıdaki adımları izleyin.

Bir Google Hizmet Hesabı Oluşturma
  • Google hesabınızla oturum açtığınızdan emin olun.
  • Google API Library sayfasına gidin
  • Gezinme çubuğundaki açılır menüye tıklayarak yeni bir proje oluşturun.
  • “Google Sheets API”yi arayın ve etkinleştirin. Bu işlem 10 saniyeye kadar sürebilir.
  • Soldaki “API’ler ve hizmetler” gezinme çubuğunda “Kimlik Bilgileri” sekmesine gidin
  • “+ KİMLİK BİLGİLERİ OLUŞTUR”’a tıklayın ve “Hizmet Hesabı” seçeneğini belirleyin
    • İlk adımda (hizmet hesabı ayrıntıları), hizmet hesabı için bir ad verin, örn. “gsheet-operator” ve “Oluştur ve devam et”’e tıklayın
    • İkinci adımda, “Sahip” rolünü seçin ve “Devam”’a tıklayın
    • Üçüncü adımda bir değişiklik yapmadan “Bitti”’ye tıklayın
  • Kimlik Bilgileri sayfasına döndüğünüzde, az önce oluşturduğunuz hizmet hesabına tıklayın.
  • Anahtarlar sekmesine gidin, “Anahtar ekle > Yeni anahtar oluştur” seçeneğine tıklayın
  • “JSON”u seçin ve “Oluştur”’a tıklayın. Hizmet hesabı kimlik bilgilerinizi içeren JSON dosyası bilgisayarınıza otomatik olarak indirilecektir.

Artık bir hizmet hesabınız ve bir JSON kimlik bilgisi dosyanız var! İndirilenler klasörünüze veya JSON dosyasının indirildiği konuma gidin, açın ve göz atın. Şuna benzer görünmelidir:

{
  "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": "[email protected]",
  "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"
}

İçeride bir “client_email” alanı var: gsheets-operator@<google-project-name>.iam.gserviceaccount.com. Bu e-postayı panonuza kopyalayın; bir sonraki adımda buna ihtiyacınız olacak.

2. Verilerle Bir Google E-Tablosu Oluşturun

E-tablosunda veri analiz edebilmeden önce, içinde veri olan bir e-tablosuna sahip olduğunuzdan emin olmanız gerekir. Elinizde bir veri kümesi yoksa, bu eğitim için hazırladığımız bir Google Sheet ile başlayabilirsiniz: örnek e-tablosunu açın ve Google Sheet içindeyken “Dosya > Kopyasını oluştur” seçeneğine tıklayın, bir ad belirtin ve “Kopyasını oluştur” deyin. Zaten analiz etmek istediğiniz verilerin bulunduğu bir e-tablosu varsa, o e-tablosunu açmanız yeterlidir.

İster örnek e-tablosunun bir kopyasıyla ister kendi e-tablosuyla çalışın, ilk adımda oluşturduğunuz Google hizmet hesabına e-tabloya erişim vermeniz gerekir:

Google Share

Harika, hizmet hesabı: tamam. Doğru erişimlerle Google e-tablosu: tamam. Şimdi biraz Python kodu yazma zamanı!

3. Yeni Bir Çalışma Kitabı Oluşturun

Sırada DataLab içinde bir veri projesi, yani bir çalışma kitabı oluşturmak var. Ya tüm kodu kendiniz yazmak istiyorsanız sıfırdan boş bir çalışma kitabı oluşturabilir ya da tüm kodu ekli bir çalışma kitabı oluşturabilirsiniz.

Bu eğitimdeki kodu çevrimiçi olarak çalıştırın ve düzenleyin

Kodu çalıştır

4. Hizmet Hesabı Kimlik Bilgilerinizi DataLab’de Saklayın

Yeni oluşturduğunuz çalışma kitabında hizmet hesabı kimlik bilgileri JSON’unu kullanmak için, bunu DataLab’de saklamanız gerekir.

JSON içeriğini yeni oluşturduğunuz çalışma kitabındaki bir kod hücresine kopyalayıp yapıştırabilirsiniz:

JSON Wrong

Bu güvenli bir yaklaşım değildir ve önerilmez. Not defterinizi başkalarıyla paylaşırsanız, kimlik bilgilerini düz metin olarak görebilirler. Böylece sizi taklit edebilir ve bu hizmet hesabının eriştiği kaynaklara erişebilirler.

Bu yaklaşım ayrıca, e-tablo verilerine erişmek için kullanmak istediğiniz her çalışma kitabında bu kodu tekrarlamanızı gerektirir. Kimlik bilgilerini döndürmek isterseniz, her çalışma kitabını tek tek düzenlemeniz gerekir.

Daha güvenli ve ölçeklenebilir bir yaklaşım, JSON’u bir ortam değişkeninde saklamaktır. Bu ortam değişkenini bağladığınızda, Python oturumunuzda kullanılabilir hale gelir. Çalışma kitabınızda:

  • Sol taraftaki “Ortam” sekmesine tıklayın
  • “Ortam Değişkenleri” yanında artı simgesine tıklayın
  • “Ortam Değişkenleri Ekle” penceresinde:
    • “Ad”ı GOOGLE_JSON olarak ayarlayın
    • “Değer”i indirilen hizmet hesabı JSON dosyasının tam içeriği olarak ayarlayın. Bunu JSON dosyasını açıp tamamını seçerek, panonuza kopyalayıp Değer alanına yapıştırarak yapabilirsiniz.
    • “Ortam Değişkenleri Kümesi Adı”nı “Google Service Account” olarak ayarlayın (bu ad aslında istediğiniz herhangi bir şey olabilir)

GOOGLE_JSON ortam değişkenini ayarlama

Tüm alanları doldurduktan sonra “Oluştur”, “İleri” ve son olarak “Bağlan”’a tıklayın. DataLab oturumunuz yeniden başlayacak ve GOOGLE_JSON artık çalışma kitabınızda bir ortam değişkeni olarak mevcut olacaktır. Bunu aşağıdaki kodla bir Python hücresi oluşturup çalıştırarak doğrulayabilirsiniz:

import os
google_json = os.environ["GOOGLE_JSON"]
print(google_json)

Aynı hizmet hesabı kimlik bilgilerini başka bir çalışma kitabında yeniden kullanmak isterseniz, ortam değişkenini yeniden ayarlamanıza gerek yoktur: ortam değişkenini diğer çalışma kitaplarında yeniden kullanabilirsiniz.

5. Google Sheets Verilerini Okuyun

Şimdi eğlenceli kısma geldik: Google Sheets verilerine bağlanmak için Python kodu yazmak.

Doğru paketleri yükleyin ve içe aktarın

Google API hesabınıza bağlantı kurmak için gereken tüm paketleri yükleyip içe aktararak başlayın. Kimlik doğrulama için google-auth, Google e-tablolarıyla kolayca etkileşim kurmak için gspread ve Python’da tablo verilerini işlemek için pandas kullanacağız.

%%capture
!pip install gspread
from google.oauth2 import service_account
import pandas as pd
import gspread
import json
import os

Kapsamlı kimlik bilgilerle bir istemci ayarlayın

GOOGLE_JSON ortam değişkenini yükleyin ve bir değişkende saklayın:

import os
google_json = os.environ["GOOGLE_JSON"]

Hizmet hesabı kimlik bilgileri json’ından bir kimlik bilgisi nesnesi oluşturun:

service_account_info = json.loads(google_json)
credentials = service_account.Credentials.from_service_account_info(service_account_info)

Google Sheet e-tablosuyla etkileşim kurmak için doğru izinlere sahip olması amacıyla kimlik bilgilerine doğru ‘API kapsamı’nı atayın:

scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
creds_with_scope = credentials.with_scopes(scope)

Bu kapsamlı kimlik bilgilerle yeni bir istemci oluşturun:

client = gspread.authorize(creds_with_scope)

E-tablo verilerini bir DataFrame’e okuyun

İstemci hazır olduğuna göre, daha önce oluşturduğumuz e-tablodaki verileri okuyabiliriz.

İlk olarak, bir e-tablo URL’sinden yeni bir sheet örneği oluşturun:

spreadsheet = client.open_by_url('https://docs.google.com/spreadsheets/d/spreadsheet_id/edit#gid=0')

Ardından, verileri almak istediğiniz çalışma sayfasına (Google e-tablosundaki sekme) odaklanın. İlk sayfayı 0 indeksini kullanarak alalım:

worksheet = spreadsheet.get_worksheet(0)

Önce tüm kayıtları bir JSON olarak alın:

records_data = worksheet.get_all_records()

Sonra, JSON kayıtlarını bir pandas DataFrame’ine dönüştürün:

records_df = pd.DataFrame.from_dict(records_data)
records_df

Başarılı!

6. E-Tablo Verilerini Python’da Analiz Edin

Artık Google e-tablosundan okuduğunuz verileri analiz etmek için Python’u kullanabilirsiniz. Aşağıdaki minimal kod, örnek e-tabloyla çalıştığınızı varsayar. Başka bir veri kümesiyle çalışıyorsanız, bu adımlar geçerli olmayabilir. Daha derine inmek isterseniz DataCamp’in pandas ile Veri Manipülasyonu kursuna göz atın!

Ülke bazında medyan yatırımı hesaplayalım:

median_funding_df = records_df.groupby("country")["funding"].median().reset_index()
median_funding_df.columns = ['country', 'median_funding']
median_funding_df

7. Sonuçları Google Sheets’e Yazın

Birlikte çalıştığınız e-tablo kullanıcılarının emeğinizin karşılığını e-tabloda görmesini istiyorsanız, Python analizinizin sonuçlarını, orijinal e-tablo içinde yeni bir Google çalışma sayfasına (yani sekmeye) geri yazabilirsiniz.

Bu örnekte, henüz yoksa median_country adlı yeni bir çalışma sayfası oluşturuyor, ardından median_funding_df DataFrame’inin içeriğini, sütun adlarını içeren başlıkla birlikte ekliyoruz. Bu kod, Yapay Zekâ Asistanı yardımıyla oluşturuldu!

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

E-tablosunuza yeniden baktığınızda, DataFrame’den gelen verilerin olduğu yeni bir çalışma sayfası göreceksiniz! Bu sonuçları ‘geri yazma’ işlemi yalnızca Google Sheets’e API tabanlı şekilde bağlandığınızda mümkündür; bu eğitimin başında tanıtılan DataCamp’in yerleşik Google Sheets bağlayıcısıyla mümkün değildir.

Sonuç

İhtiyaçlarınıza bağlı olarak, Google Sheets verilerini Python ile analiz etmek çok zahmetsiz olabilir ya da oldukça kapsamlı bir başlangıç kurulumu gerektirebilir. Yalnızca bir sayfadan veri okumak istiyorsanız, yerleşik bağlayıcıyı kullanın ve beş tıklamadan kısa sürede işe koyulun. Hem veri okuyup hem de Google Sheets’e veri yazmak istiyorsanız, Google Sheets API’sini etkinleştirip bir hizmet hesabı kurmak karşılığını verir.

Her iki durumda da, yapılandırmalar doğru yapıldıktan sonra, Google Sheets’ten veri almak neredeyse bir CSV dosyasını sorgulamak kadar kolaydır. En büyük avantaj ise paydaşlarınıza bulundukları yerde ulaşabilmenizdir: Muhtemelen bazı meslektaşlarınız e-tablolardan vazgeçemiyordur.

Zahmetli CSV dışa aktarma dönemleri geride kalsın; DataLab’den ayrılmadan Google Sheets verileriyle çalışmak için güçlü, otomatik iş akışlarının zamanı gelsin.

Konular

İlgili