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

DIY [Do It Yourself] Perbaikan Kisi - kisi Blower AC Mobil Soluna yang patah

Mau share sedikit ilmu yang didapat dari browsing - browsing di internet, Cara hemat dan murah memperbaiki kisi - kisi AC mobil Soluna atau mobil lain yang tipe nya sama / mirip (keluaran tahun 2000 an). Biasanya kisi - kisi jenis ini problemnya adalah sudu - sudu pengarah arah anginnya sudah tidak bisa di perintah bergerak kiri atau kekanan, dan problemnya karena batang penyatu semua sudu - sudu getas dan patah.

Pakai SO-DIMM RAM DDR3L Low Voltage 1.35V di Slot 1.5V Laptop ASUS A43SA

02-Jan-2019 Kebetulan habis upgrade RAM Laptop Acer Z3-451(tahun produksi 2016-2017) ke DDR3L 8GB, karena slot RAM nya bawaannya pelit cuma ada 1 satu slot, terpaksa RAM DDR3L lamanya yang berkapasitas 4GB di lepas, tidak bisa sekedar tambah satu keping lagi. Nganggur lah itu RAM 4GB DDR3L (Low Voltage 1.35Volt). Dari awal saya memang sudah notice slot RAM Laptop saya yang lain, yaitu; ASUS A43SA (tahun produksi 2011) ada 2 Slot RAM 1.5Volt, kebetulan kedua slot sudah di pasang RAM 2GB, jadi total kapasitas RAM bawaan 4GB. Cari-cari info, apakah kompatibel RAM kode L (low voltage 1.35V) dipasang di slot 1.5V ,  dari hasil pengumpulan informasi, ada yang bilang bisa, ada juga yang bilang bisa diawal, di jangka panjang akan blue screen. Daripada penasaran saya coba saja, RAM bawaan ASUS A43SA yang DDR3 2x2GB 1.5Volt saya lepas satu keping, dan saya pasang RAM DDR3 4GB Low Voltage 1.35Volt, warisan dari Acer Z3-451.  

Pengelompokkan Groupset Sepeda Roadbike dan MTB, Gravel-GRX

  May 2024 Sedikit upaya untuk membuat shortlist urutan groupset, berdasarkan harga dan level, yang dilakukan dengan market assesment cepat melalui online e-commerce dalam(Indonesia) dan luar negeri. Saya buat gambaran sedikit. Pada umumnya sepeda yang dijual di market menggunakan groupset basic, entry dan mid range. Setelah itu baru ada sedikit enthusiast. Sedangkan untuk Race dan Pro, ini biasa yang digunakan para atlit. Roadbike GroupSet rank dari paling atas: Shimano DuraAce > Ultegra>105>Tiagra>Sora>Claris SRAM Red>Force>Rival>Apex MTB/gravel GroupSet dari paling atas  Shimano XTR>XT>SLX>Deore>Alivio>Acera>Altus>Tourney SRAM XX1>X1>X9>X7>X5>X4>X3 Kenapa harganya bisa jauh terpaut, ini selalu masalah bobot, semakin mahal semakin ringan, tapi kekuatan nya sama, jadi material nya yang berbeda, untuk ukuran akan mirip-mirip, maksud ukuran disini adalah jumlah gigi chainring dan sprocket. Penghematan bobot atau rin...

Pompa Air Booster Shimizu PS 135 E Otomatis Bermasalah & Cara Menangulangi nya

Pengunaan pompa air untuk Booster sering kali digunakan untuk rumah bertingkat. Biasanya pompa booster bekerja otomatis, bisa menggunakan pressure switch atau flow switch. Penggunaan pressure switch lebih banyak, karena lebih murah dan kebanyakan sudah merupakan fitur standar dari manufaktur pompa. Kali ini saya akan membagi pengalaman menggunakan Pompa Booster Shimizu PS-135 E menggunakan pressure switch. Pembelian pompa 11 April 2015 sudah cukup berumur 4tahun usianya. Problem yang biasa terjadi untuk pompa booster tipe pressure switch. 1. Pompa On-Off dengan jeda sangat pendek ketika keran di buka 1/4 atau setengah, bahasa lainnya cetak cetek, cetek cetek 2. Pompa On terus tidak pernah mati 3. Pompa tidak mau menyala Kita bahas satu persatu

Timing Belt Toyota Soluna Japan or Thailand?

9 Jul 2019 Baru ganti timing belt Toyota Soluna Posisi KM 200.000, setelah sebelumnya di tahun 2014 KM 120.000 diganti di auto 2000, sebenarnya ini kelewat interval anjuran dari AUTO2000 yang disarankan tiap 60.000km. Waktu di bongkar saya liat Timing Belt terpasang kode part nya 13568-16051, tidak tertera made in mana. Dari penjelasan mekanik timing belt nya masih bagus dan layak pakai. Tapi tetap saja saya ganti, mengingat sudah menempuh putaran yang mencapai 80.000km. Timing Belt yang terpasang