293 KiB
293 KiB
Был взят 17 вариант, а именно .csv с Ценами на автомобили.
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]:
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]:
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[ ]:
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]:
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()
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()
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()