AIM-PIbd-31-Medvedkov-A-D/Lab_1/lab1.ipynb
2024-10-25 16:37:49 +04:00

150 KiB

Импорт библиотек и загрузка датасета

In [2]:
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("../data\jio_mart_items.csv")
<>:4: SyntaxWarning: invalid escape sequence '\j'
<>:4: SyntaxWarning: invalid escape sequence '\j'
C:\Users\MaD\AppData\Local\Temp\ipykernel_13404\161500005.py:4: SyntaxWarning: invalid escape sequence '\j'
  df = pd.read_csv("../data\jio_mart_items.csv")

Изучение полученных данных

In [3]:
df.info()

# print(df.describe().transpose())

# cleared_df = df.drop(["Name", "Ticket", "Embarked"], axis=1)
# print(cleared_df.head())
# print(cleared_df.tail())

# sorted_df = cleared_df.sort_values(by="Age")
# print(sorted_df.head())
# print(sorted_df.tail())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 162313 entries, 0 to 162312
Data columns (total 5 columns):
 #   Column        Non-Null Count   Dtype  
---  ------        --------------   -----  
 0   category      162313 non-null  object 
 1   sub_category  162313 non-null  object 
 2   href          162313 non-null  object 
 3   items         162280 non-null  object 
 4   price         162282 non-null  float64
dtypes: float64(1), object(4)
memory usage: 6.2+ MB

Захотел посмотреть кол-во подкатегорий.

In [4]:
print(len(set(df["sub_category"])))

# print(df.sort_values(by="category")[["category", "sub_category"]])

# print(df.loc[100])

# print(df.loc[100, "Name"])

# print(df.loc[100:200, ["Age", "Name"]])

# print(df[0:3])

# print(df.iloc[0])

# print(df.iloc[3:5, 0:2])

# print(df.iloc[[3, 4], [0, 1]])
72
In [5]:
avg_price_by_category = df.groupby('category')['price'].mean()

plt.figure(figsize=(10, 6))
avg_price_by_category.plot(kind='bar', color='skyblue')
plt.title('Средняя цена по категории')
plt.xlabel('Категория')
plt.ylabel('Средняя цена')
plt.xticks(rotation=0)
plt.tight_layout()
plt.show()
No description has been provided for this image

Данная диаграмма отображает среднюю цену по категории и иллюстрирует очевидный факт: электроника и ювелирные украшения стоят больше всего.

In [6]:
category_counts = df['category'].value_counts()

plt.figure(figsize=(8, 8))
plt.pie(category_counts, labels=category_counts.index, autopct='%1.1f%%', colors=plt.cm.Paired.colors)
plt.title('Распространенность каждой категории')
plt.tight_layout()
plt.show()
No description has been provided for this image

Данная диаграмма отображает распространённость каждой категории

In [23]:
categories = df['category'].unique()
data = [df[df['category'] == cat]['price'].dropna() for cat in categories]

plt.figure(figsize=(12, 6))
plt.boxplot(data, vert=True, patch_artist=True, boxprops=dict(facecolor="lightblue"))

plt.title('Разброс цен по категориям')
plt.xlabel('Категория')
plt.ylabel('Цена')

plt.ylim(0, 10000) 

plt.xticks(ticks=range(1, len(categories) + 1), labels=categories)

plt.show()
No description has been provided for this image

Данная диаграмма отображает разброс цен по категориям