pred_analytics/lab1.ipynb
2025-01-13 14:42:39 +04:00

293 KiB
Raw Permalink Blame History

Был взят 17 вариант, а именно .csv с Ценами на автомобили.image.png

In [ ]:
import pandas as pd

# Загрузка (чтение) файла
df = pd.read_csv('car_price_prediction.csv')

# Сохранение данных в файл
# df.to_сsv('car_price_prediction.csv', index=False, engine='openpyxl')

# Получение сведений о df
df.info()

# Получение информации о колонках df
print(df.columns)

# Вывод отдельных строк/столбцов df
print(df[0:3])
print(df.loc[50,"Price"])

# Группировка и агрегация
grouped = df.groupby(["Price", "Model"])
print(grouped)
df["Price"].agg(['sum', 'mean'])

# Сортировка данных в df
df.sort_values(by="Price", ascending=False)

# Удаление строк/стобцов из df
df.drop(labels=[2,3], axis=0)
df.drop("Price", axis=1)

# Cоздание новых столбцов на основе данных из существующих столбцов датафрейма
df = df.assign(Test = df["Fuel type"] + df["Engine volume"])
print(df)

# Удаление строк с пустыми значениями
df_cleaned = df.dropna()

# Удаление только строк, в которых все значения NaN
df_cleaned = df.dropna(how="all")

# Заполнение пустых значений на основе существующих данных
median_value = df["Price"].median()
df["Price"].fillna(median_value, inplace=False)
In [8]:
# Визуализация линейчатая

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('car_price_prediction.csv', nrows=50)


x = df["Cylinders"]
y = df["Category"]

plt.plot(x, y, marker='o')

plt.xlabel('Количество цилиндров')
plt.ylabel('Категория авто')
plt.title('test')
Out[8]:
Text(0.5, 1.0, 'test')
No description has been provided for this image
In [14]:
# Столбчатая 

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("car_price_prediction.csv", nrows=100)

x = df["Airbags"]
y = df["Category"]

plt.bar(x,y)
Out[14]:
<BarContainer object of 100 artists>
No description has been provided for this image
In [ ]:
# Гистограмма

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("car_price_prediction.csv", nrows=100)

df.plot.hist(column=["Price"], bins=80)
Out[ ]:
<Axes: ylabel='Frequency'>
No description has been provided for this image
In [20]:
# box

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("car_price_prediction.csv", nrows=100)

plt.figure(figsize=(8,6))
plt.boxplot(df["Price"], vert=False, patch_artist=True, boxprops=dict(facecolor='lightblue'))
plt.title('Ящик с усами', fontsize=14)
plt.xlabel('Цена', fontsize=12)
plt.show
Out[20]:
<function matplotlib.pyplot.show(close=None, block=None)>
No description has been provided for this image
In [21]:
# Диаграмма с областями

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("car_price_prediction.csv", nrows=100)

average_price_by_year = df.groupby("Prod. year")["Price"].mean()
plt.figure(figsize=(10, 6))
plt.fill_between(
    average_price_by_year.index, average_price_by_year, color="skyblue", alpha=0.5
)
plt.plot(
    average_price_by_year.index, average_price_by_year, color="Slateblue", linewidth=2
)
plt.title("Диаграмма с областями: средняя цена по годам выпуска", fontsize=14)
plt.xlabel("Год выпуска", fontsize=12)
plt.ylabel("Средняя цена", fontsize=12)
plt.show()
No description has been provided for this image
In [22]:
# Диаграмма рассеяния

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("car_price_prediction.csv", nrows=100)

# Построение диаграммы рассеяния (scatter) для объема двигателя и цены
plt.figure(figsize=(8, 6))
plt.scatter(df["Engine volume"], df["Price"], alpha=0.5, color="coral")
plt.title("Диаграмма рассеяния: объем двигателя и цена", fontsize=14)
plt.xlabel("Объем двигателя (л)", fontsize=12)
plt.ylabel("Цена", fontsize=12)
plt.show()
No description has been provided for this image
In [23]:
# Круговая диаграмма

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("car_price_prediction.csv", nrows=100)

category_counts = df["Category"].value_counts()

plt.figure(figsize=(8, 8))
plt.pie(
    category_counts,
    autopct="%1.1f%%",
    startangle=140,
)
plt.title("Распределение автомобилей по категориям", fontsize=14)
plt.show()
No description has been provided for this image