Langsung ke konten utama

ETL Extract Transform Load

  • Complete the transform_avg_rating() function by grouping by the course_id column, and taking the mean of the rating column.
  • Use extract_rating_data() to extract raw ratings data. It takes in as argument the database engine db_engines.
  • Use transform_avg_rating() on the raw rating data you've extracted.
  • Mencari kesamaan antar user 1 2 3 berdasarkan rating yang di input di sistem

Now that you have a grasp of what's happening in the datacamp_application database, let's go ahead and write up a query for that database.

The goal is to get a feeling for the data in this exercise. You'll get the rating data for three sample users and then use a predefined helper function, print_user_comparison(), to compare the sets of course ids these users rated.

  • Complete the connection URI. The database is called datacamp_application. The host is localhost with port 5432. The username is repl and the password is password.
  • Select the ratings of users with id: 438718163 and 8770.
  • Fill in print_user_comparison() with the three users you selected.

# Complete the connection URI

connection_uri = "postgresql://repl:password@localhost:5432/datacamp_application" 
db_engine = sqlalchemy.create_engine(connection_uri)

# Get user with id 4387
user1 = pd.read_sql("SELECT * FROM rating WHERE user_id=4387", db_engine)

# Get user with id 18163
user2 = pd.read_sql("SELECT * FROM rating WHERE user_id=18163", db_engine)

# Get user with id 8770
user3 = pd.read_sql("SELECT * FROM rating WHERE user_id=8770", db_engine)

# Use the helper function to compare the 3 users
print_user_comparison(user1, user2, user3)


Course id overlap between users:

================================ User 1 and User 2 overlap: {32, 96, 36, 6, 7, 44, 95} User 1 and User 3 overlap: set() User 2 and User 3 overlap: set()


Mencari Average Rating

In this exercise, you'll complete a transformation function transform_avg_rating() that aggregates the rating data using the pandas DataFrame's .groupby() method. The goal is to get a DataFrame with two columns, a course id and its average rating:

course_idavg_rating
1234.72
1114.62

In this exercise, you'll complete this transformation function, and apply it on raw rating data extracted via the helper function extract_rating_data() which extracts course ratings from the rating table.


  • Complete the transform_avg_rating() function by grouping by the course_id column, and taking the mean of the rating column.
  • Use extract_rating_data() to extract raw ratings data. It takes in as argument the database engine db_engines.
  • Use transform_avg_rating() on the raw rating data you've extracted

# Complete the transformation function
def transform_avg_rating(rating_data):
    # Group by course_id and extract average rating per course
    avg_rating = rating_data.groupby('course_id').rating.mean()
    # Return sorted average ratings per course
    sort_rating = avg_rating.sort_values(ascending=False).reset_index()
    return sort_rating

# Extract the rating data into a DataFrame    
rating_data = extract_rating_data(db_engines)

# Use transform_avg_rating on the extracted data and print results
avg_rating_data = transform_avg_rating(rating_data)
print(avg_rating_data) 

course_id rating 0 46 4.800000 1 23 4.800000 2 96 4.692765 3 56 4.661765 4 24 4.653061 .. ... ... 94 54 4.238095 95 92 4.222222 96 29 4.208333 97 17 4.147059 98 42 4.107570



Komentar

Postingan populer dari blog ini

Qatar Karting Championship 2024 Round 4, Highspeed with M-Shape Track Layout

3-4 Jun 2024 Favorite M-Shape layout by Miss Paige, personally I don't really like it, since I will be dive brake there and everyone will not be happy, I cannot battle the temptation, all my life, and my riding style is late braking, so If you saw me behind you at "warzone" and I'm in battle mode, be cautious, karting is a little "too safe" for me, little scrub will happened. However, if I'm in friendly mode, when battle for 0 zero points, I will let you pass or let you take the turn too safely. During QTT, I got kart no 17, the most fast kart, problem, QTT need to slow down, I want to go to below 10 group, easy group. So I will be able to score some points. Pre final race Warzone, chaos, everybody bumping, just enjoying the ride. Grand Final Honestly I got very bad kart (not trying to make excuse here), position 11 until 20 is ZERO points, so what to do? just finish the race, I have nothing to chase, so next round last round 5, I will do it my way. I al...

Tujuan Manusia diciptakan adalah untuk beribadah kepada Allah dan mengharapkan Ridho Allah semata

7 Apr 2025 Pernah ada fasa memikirkan apa guna nya hidup di umur kepala 2x, kalau dulu s.d masa kuliah masih no clue, ya banyak impian apalagi hasil tontonan film 90an s.d 2000, hidup menarik sekali, jadi superhero, jadi kaya, bisa beli mainan apa saja. Banyak kegiatan menantang yg bisa di coba, tiap hari bangun punya drive baru untuk dilakukan, punya target baru yg harus dikejar. Semakin tua banyak impian yg bisa, tidak bisa dan ada yg mustahil dicapai, apalagi dari kecil terbiasa result driven, kalau nda dapat apa2 buat apa berusaha. Sulit sekali nanti hanya utk sekedar bangun tidur hari itu saja sudah tidak ada drive apa2 lagi. Nanti ada masa nya, semua drive atau tujuan dunia tidak memenuhi dahaga lagi, disini lah peran agama, ya yg idealnya harus di pupuk sedari kecil, tapi tidak ada kata terlambat, kapan pun kita mulai mendekat ke agama itu memang waktu yg terbaik dan memang Allah yg memberikan hidayahnya. Sekarang ambisi dan agresifitas sudah berkurang di diri saya, kondisi seka...

Soluna Matic Tiba - Tiba tidak bisa distarter

13-Juni-17 Pagi hari setelah isi bensin, saya coba start soluna matic saya, wahh ga ada tanda tanda sama sekali. Minta tolong petugas SPBU untuk dorong kepinggir. Saya ingat-ingat apakah karena aki yang sudah berumur. Tapi di bodi aki, tahun 2016 yang ditulis penjual aki dengan spidol. Setelah menunggu sekitar 15 menit, seperti yang disarankan petugas keamanan security "panas aja pak, tar juga bisa lagi". Benar saja, saat kunci kontar di putar langsung bisa starter. Hah?wah aneh sekali.

Balik Nama BPKB di POLDA Metro Jaya Jakarta Selatan (Jabodetabek)

26 Agustus 2017 Tulisan ini lanjutan dari proses cabut berkas Sepeda Motor(Roda 2) saya di Samsat Gunung Sahari, berlanjut mutasi masuk di Samsat Ciputat Cabut Berkas Motor Mati Pajak 2 Tahun di Samsat Jakarta Utara (Hari 1) Cabut Berkas Motor Mati Pajak 2 Tahun di Samsat Jakarta Utara (Hari 2) Mutasi Masuk Samsat Ciputat dari Samsat Jakut/Jakpus Gunung Sahari Sedikit info, motor sebelumnya terdaftar di Samsat Jakarta Pusat, sudah saya lakukan balik nama STNK ke Samsat Ciputat, STNK asli dan Plat Nomor baru sudah ada, tapi BPKB masih atas nama pemilik lama, tulisan ini adalah pengalaman saya  saat mengurus balik nama BPKB, kenapa dibutuhkan? karena nantinya saat bayar pajak tahunan biasanya petugas menanyakan BPKB asli saat melakukan pembayaran pajak. Selain itu juga untuk men-sahkan kepemilikan kendaraan bermotor secara legal atas nama saya sendiri.

Cara Cek Casing Water proof Camera GoPro Hero yang bocor

Kebetulan karena banyak yang bertanya dan mengalami Camera GoPro Hero 4 5 6 7 8 9 mati total saat dibawa diving / snorkling di air laut. Baiknya hal ini dilakukan sebelum anda memakai GoPro diaktifitas yang berkaitan dengan bawah air, karena bisa saja hari ini belum bocor, 1 bulan kemudian karena gasket terbuat dari karet, kualitasnya menurun dan bocor. Saya coba jelaskan cara cek water proof GoPro yang bocor. Tahapannya; 1. Keluarkan Camera dari waterproof casing 2. Isi dengan pemberat 3. Masukkan Tisu 4. Tenggelamkan GoPro kedalam air yang memiliki kedalaman lebih dari 1 meter (dalam Bak air atau ember) makin dalam makin baik 5. Biarkan lebih dari 4 jam (agar kebocoran sekecil apapun bisa terlihat), makin lama makin baik 6. Cek dan lihat apakah tisu basah, jika basah, ada kebocoran. Makin dalam di tes makin bagus, karena tiap kedalam 1 meter, tekanan air meningkat 0,1atmosfir (bar), semakin lama durasi nya juga makin baik, misal 1hari/24jam. Jika bocor, maka ada pemec...