diff --git a/exploratory_analysis.ipynb b/exploratory_analysis.ipynb index 8b4677d..d4a4479 100644 --- a/exploratory_analysis.ipynb +++ b/exploratory_analysis.ipynb @@ -10,8 +10,16 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 1, + "metadata": { + "execution": { + "iopub.execute_input": "2026-03-17T14:20:15.066924Z", + "iopub.status.busy": "2026-03-17T14:20:15.066016Z", + "iopub.status.idle": "2026-03-17T14:20:16.778453Z", + "shell.execute_reply": "2026-03-17T14:20:16.776433Z", + "shell.execute_reply.started": "2026-03-17T14:20:15.066858Z" + } + }, "outputs": [], "source": [ "import numpy as np\n", @@ -30,8 +38,16 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 3, + "metadata": { + "execution": { + "iopub.execute_input": "2026-03-17T14:26:28.739669Z", + "iopub.status.busy": "2026-03-17T14:26:28.739278Z", + "iopub.status.idle": "2026-03-17T14:26:31.801452Z", + "shell.execute_reply": "2026-03-17T14:26:31.799252Z", + "shell.execute_reply.started": "2026-03-17T14:26:28.739641Z" + } + }, "outputs": [], "source": [ "from olist.data import Olist\n", @@ -69,15 +85,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { + "execution": { + "iopub.execute_input": "2026-03-17T14:30:25.278006Z", + "iopub.status.busy": "2026-03-17T14:30:25.276778Z", + "iopub.status.idle": "2026-03-17T14:30:25.468529Z", + "shell.execute_reply": "2026-03-17T14:30:25.466956Z", + "shell.execute_reply.started": "2026-03-17T14:30:25.277959Z" + }, "tags": [ "challengify" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Benzersiz Sipariş (orders): 99441\n", + "Benzersiz Yorum (reviews): 98410\n", + "Benzersiz Satıcı (sellers): 3095\n", + "Benzersiz Ürün (products): 32951\n", + "Benzersiz Müşteri (customers): 99441\n" + ] + } + ], "source": [ - "# YOUR CODE HERE" + "# Benzersiz ID sayılarını hesaplayalım\n", + "print(f\"Benzersiz Sipariş (orders): {data['orders']['order_id'].nunique()}\")\n", + "print(f\"Benzersiz Yorum (reviews): {data['order_reviews']['review_id'].nunique()}\")\n", + "print(f\"Benzersiz Satıcı (sellers): {data['sellers']['seller_id'].nunique()}\")\n", + "print(f\"Benzersiz Ürün (products): {data['products']['product_id'].nunique()}\")\n", + "print(f\"Benzersiz Müşteri (customers): {data['customers']['customer_id'].nunique()}\")" ] }, { @@ -99,15 +139,50 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { + "execution": { + "iopub.execute_input": "2026-03-17T14:33:08.974604Z", + "iopub.status.busy": "2026-03-17T14:33:08.973053Z", + "iopub.status.idle": "2026-03-17T14:33:10.871604Z", + "shell.execute_reply": "2026-03-17T14:33:10.870055Z", + "shell.execute_reply.started": "2026-03-17T14:33:08.974556Z" + }, "tags": [ "challengify" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[]], dtype=object)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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Xavi4mK1b9++3tpA+gyeqTE9nq25fw7Dw8PVqVMnSVK/fv20a9cuLVq0SC+88EKd2kA9fo3p8WzN/fiVlpbq6NGj6tu3r72spqZGxcXFWrx4sdxut0JDQ722aYrjyKUxPwgPD1e/fv20ceNGe5nH49HGjRvPe+03NTXVq16SnE5nvdeKm8rF9He2mpoa7du3T+3atfPXNC+rQDp+vlRWVtYsj6FlWcrNzdXq1au1adMmJSUlXXCbQDuGF9Pj2QLtc+jxeOR2u8+5LtCO3/nU1+PZmvvxGzp0qPbt26eysjL7T3JyssaOHauysrI6IUhqouPot9uwDffqq69aERER1tKlS60PPvjAGj9+vNWmTRvL5XJZlmVZ9957rzV58mS7fuvWrdYVV1xh/frXv7Y+/PBDa/r06VZYWJi1b9++pmqhXo3tb+bMmdaGDRusv/3tb1Zpaak1evRoKzIy0jpw4EBTtVCvL774wtq7d6+1d+9eS5I1f/58a+/evdZHH31kWZZlTZ482br33nvt+r///e9WixYtrEceecT68MMPrYKCAis0NNQqLCxsqhYuqLE9LliwwFqzZo11+PBha9++fdbEiROtkJAQ6+23326qFs7roYceslq3bm29++671j//+U/7z+nTp+2aQP8MXkyPgfQ5nDx5srV582bryJEj1vvvv29NnjzZcjgcVlFRkWVZgX/8LKvxPQbS8Tufs58aaw7HkSDkR88++6z17W9/2woPD7f69+9vbd++3V538803W1lZWV71K1eutK677jorPDzcuv76661169Zd5hk3TmP6y8vLs2vj4uKs73//+9aePXuaYNYNU/uo+Nl/anvKysqybr755jrb9OnTxwoPD7e+853vWK+88spln3djNLbHuXPnWtdee60VGRlpxcbGWkOGDLE2bdrUNJO/gHP1JcnrmAT6Z/Biegykz+FPfvITq0OHDlZ4eLh1zTXXWEOHDrUDgmUF/vGzrMb3GEjH73zODkLN4Tg6LMuy/He+CQAAoPniHiEAAGAsghAAADAWQQgAABiLIAQAAIxFEAIAAMYiCAEAAGMRhAAAgLEIQgAAwFgEIQAAYCyCEAAAMBZBCAAAGOv/Abn7iQh9crqyAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# YOUR CODE HERE" + "# 1. Adım: Siparişler ile Yorumları birleştirelim (Left Join ile tüm siparişleri koruyoruz)\n", + "orders_reviews = data['orders'].merge(data['order_reviews'], on='order_id', how='left')\n", + "\n", + "# 2. Adım: Sipariş başına yorum sayısını bulalım\n", + "reviews_per_order = orders_reviews.groupby('order_id').agg({'review_id': 'count'})\n", + "\n", + "# 3. Adım: Histogram çizdirelim\n", + "reviews_per_order.hist(bins=range(0, 5))" ] }, { @@ -128,22 +203,75 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { + "execution": { + "iopub.execute_input": "2026-03-17T14:34:19.373426Z", + "iopub.status.busy": "2026-03-17T14:34:19.372581Z", + "iopub.status.idle": "2026-03-17T14:34:19.413114Z", + "shell.execute_reply": "2026-03-17T14:34:19.411025Z", + "shell.execute_reply.started": "2026-03-17T14:34:19.373377Z" + }, "tags": [ "challengify" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Yorumu eksik olan sipariş sayısı: 768\n" + ] + } + ], "source": [ - "# YOUR CODE HERE" + "# Hiç yorum almamış (review_id'si null olan) siparişlerin sayısı\n", + "n_missing_reviews = orders_reviews['review_id'].isna().sum()\n", + "print(f\"Yorumu eksik olan sipariş sayısı: {n_missing_reviews}\")" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], + "execution_count": 7, + "metadata": { + "execution": { + "iopub.execute_input": "2026-03-17T14:34:23.771264Z", + "iopub.status.busy": "2026-03-17T14:34:23.768851Z", + "iopub.status.idle": "2026-03-17T14:34:25.529178Z", + "shell.execute_reply": "2026-03-17T14:34:25.526027Z", + "shell.execute_reply.started": "2026-03-17T14:34:23.771191Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\u001b[1m============================= test session starts ==============================\u001b[0m\n", + "platform linux -- Python 3.12.9, pytest-8.3.4, pluggy-1.5.0 -- /home/bariscan/.pyenv/versions/3.12.9/envs/workintech/bin/python\n", + "cachedir: .pytest_cache\n", + "rootdir: /home/bariscan/data-exploratory-analysis/tests\n", + "plugins: typeguard-4.4.2, anyio-4.8.0\n", + "\u001b[1mcollecting ... \u001b[0mcollected 1 item\n", + "\n", + "test_exploratory.py::TestExploratory::test_n_missing_reviews \u001b[32mPASSED\u001b[0m\u001b[32m [100%]\u001b[0m\n", + "\n", + "\u001b[32m============================== \u001b[32m\u001b[1m1 passed\u001b[0m\u001b[32m in 0.38s\u001b[0m\u001b[32m ===============================\u001b[0m\n", + "\n", + "\n", + "💯 You can commit your code:\n", + "\n", + "\u001b[1;32mgit\u001b[39m add tests/exploratory.pickle\n", + "\n", + "\u001b[32mgit\u001b[39m commit -m \u001b[33m'Completed exploratory step'\u001b[39m\n", + "\n", + "\u001b[32mgit\u001b[39m push origin master\n", + "\n" + ] + } + ], "source": [ "from nbresult import ChallengeResult\n", "\n", @@ -157,9 +285,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.9" } }, "nbformat": 4, diff --git a/olist/__init__.py b/olist/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/olist/data.py b/olist/data.py new file mode 100644 index 0000000..5380a45 --- /dev/null +++ b/olist/data.py @@ -0,0 +1,34 @@ +import pandas as pd +from pathlib import Path + +class Olist: + def __init__(self): + # Notebook'taki ile aynı yolu tanımlıyoruz + self.csv_path = Path("~/.workintech/olist/data/csv").expanduser() + + def get_data(self): + """ + 9 CSV dosyasını okur, isimlerini temizler ve bir dict içinde döndürür. + """ + if not self.csv_path.exists(): + raise FileNotFoundError(f"Veri yolu bulunamadı: {self.csv_path}") + + # Dosya yollarını listele + file_paths = list(self.csv_path.iterdir()) + + # Dosya isimlerini al + file_names = [path.name for path in file_paths if path.suffix == '.csv'] + + # Anahtar isimlerini temizle + key_names = [ + name.replace('olist_', '').replace('_dataset.csv', '').replace('.csv', '') + for name in file_names + ] + + # Sözlüğü oluştur (Notebook'ta yaptığımız mantıkla) + data = { + key: pd.read_csv(path) + for key, path in zip(key_names, file_paths) + } + + return data diff --git a/tests/exploratory.pickle b/tests/exploratory.pickle new file mode 100644 index 0000000..9b19a59 Binary files /dev/null and b/tests/exploratory.pickle differ