Решение задачи на python, работа с таблицой

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
ПавелМальцев
Сообщения: 0
Зарегистрирован: 08 апр 2018, 10:52

08 апр 2018, 13:19

Помогите решить задачу на python с таблицей.

Описание
Самый простой способ извлечь из данных много информации в компактном виде - визуализация.
В этом упражнении мы познакомимся с данными из игры Dota 2, построим несколько графиков и попробуем обнаружить зависимости.
Вашей задачей будет использовать диаграмму рассеяния для обнаружения выбросов.

Материалы: сайт не позволяет вложить таблицу и код помощи поэтому переходите по ссылке:
http://contest.ai-academy.ru/problems#p ... ualization
(Задача 3: Matplotlib и визуализация)

Условие задачи
Если нарисовать диаграмму рассеяния dire_xp против dire_gold, без фильтрации строк, где radiant_gold < 100000, то можно увидеть кластер выбросов в правом верхнем углу.
Введите в форму ниже fight_id соответствующий любому из этих выбросов.

Задача: найти такой fight_id у которого dire_xp и dire_gold находиться сверху справа на диаграмме рассеяния и при этом radiant_gold < 100000

Мой код:

pd.DataFrame()


table = pd.concat([
pd.read_csv('C:\SberbankDota/train.csv', index_col=0),
pd.read_csv('C:\SberbankDota/target.csv', index_col=0)
], axis=1)

table['radiant_xp'] = table['r1_xp'] + table['r2_xp'] + table['r3_xp'] + table['r4_xp'] + table['r5_xp']
table['dire_xp'] = table['d1_xp'] + table['d2_xp'] + table['d3_xp'] + table['d4_xp'] + table['d5_xp']
table['dire_gold'] = table['d1_gold'] + table['d2_gold'] + table['d3_gold'] + table['d4_gold'] + table['d5_gold']
table['radiant_gold'] = table['r1_gold'] + table['r2_gold'] + table['r3_gold'] + table['r4_gold'] + table['r5_gold']
table['gold_diff'] = table['radiant_gold'] - table['dire_gold']
table['dire_diff'] = table['dire_xp'] - table['dire_gold']

table_truncated = table.query('radiant_gold < 100000')


plt.figure(figsize=(9, 5)),
plt.scatter(table_truncated['dire_xp'], table_truncated['dire_gold']),
plt.show()

table_truncated = table.query('dire_xp > 120000')
table_truncated = table.query('dire_gold > 80000')
print(table_truncated)
Ответить