Форум программистов, компьютерный форум, киберфорум
Наши страницы

Python

Войти
Регистрация
Восстановить пароль
 
daria13
0 / 0 / 1
Регистрация: 28.12.2016
Сообщений: 16
#1

Удаление из списка - Python

11.02.2017, 13:32. Просмотров 365. Ответов 12
Метки нет (Все метки)

Считывается список из файла csv. Так как некоторые значения не указаны, на их месте в списке появляются nan.
Подскажите пожалуйста, как убрать из списка nan, ибо нужно посчитать сумму элементов в этом списке.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2017, 13:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление из списка (Python):

Удаление элемента из списка - Python
Добрый вечер ! Ситуация такая, есть список который состоит из списков, в котором строка. Мне нужно удалить все элементы меньше заданного: ...

Удаление элементов из списка - Python
Добрый день, сделал чтение из excel файла построчно import xlrd import os directory = 'excel Files' excelfiles =...

Удаление элементов из списка - Python
Всем привет! У меня проблема с удалением элементов из списка: не получается удалить элементы ' '. Кто-нибудь может подсказать, в чем...

Удаление элемента из списка по условию - Python
Здравствуйте, дорогие форумчане! Нужна Ваша помощь! Проблема: дан массив вида: , , , , ] . Необходимо пройти по элементам...

Обработка и удаление элементов списка - Python
Помогите решить такую задачу: есть список, состоящий из вложенных списков. Требуется пройти циклом(или как-то еще) по списку, и если есть...

Удаление из списка повторяющихся элементов - Python
Здравствуйте! По заданию нужно считать из файла символы и посчитать количество каждого и на выходе получить отсортированный массив из...

12
alex925
2569 / 2220 / 527
Регистрация: 19.03.2012
Сообщений: 8,664
11.02.2017, 14:28 #2
Цитата Сообщение от daria13 Посмотреть сообщение
как убрать из списка nan
Не nan, а none наверно, nan в js.

Python
1
2
3
4
>>> a = [1, 2, 3, None, 2]
>>> a = list(filter(bool, a))
>>> a
[1, 2, 3, 2]
0
shsv
321 / 235 / 114
Регистрация: 20.05.2016
Сообщений: 503
11.02.2017, 14:40 #3
alex925, у float есть
Python
1
2
3
4
5
>>> n = float('nan')
>>> n
nan
>>> isinstance(n, float)
True
0
Ennjin
75 / 75 / 30
Регистрация: 25.11.2016
Сообщений: 262
11.02.2017, 14:47 #4
Можно еще так, сразу при чтении
Python
1
a = [i for i in file.reader() if i != None]
0
daria13
0 / 0 / 1
Регистрация: 28.12.2016
Сообщений: 16
12.02.2017, 12:44  [ТС] #5
Цитата Сообщение от alex925 Посмотреть сообщение
Не nan, а none наверно, nan в js.
Если вывести этот список с помощью print, то выводит такое:
[22.0, 38.0, 26.0, 35.0, 35.0, nan, 54.0, 2.0, 27.0, 14.0, 4.0, 58.0, 20.0, 39.0, 14.0, 55.0, 2.0, nan]
0
Ennjin
75 / 75 / 30
Регистрация: 25.11.2016
Сообщений: 262
12.02.2017, 12:56 #6
daria13, выложите кусок кода, которым вы считываете список.
у вас в вашем файле только целые числа?
0
daria13
0 / 0 / 1
Регистрация: 28.12.2016
Сообщений: 16
12.02.2017, 13:09  [ТС] #7
Цитата Сообщение от Ennjin Посмотреть сообщение
выложите кусок кода, которым вы считываете список.
у вас в вашем файле только целые числа?
age = data['Age'].tolist()
[]
0
Ennjin
75 / 75 / 30
Регистрация: 25.11.2016
Сообщений: 262
12.02.2017, 13:14 #8
Цитата Сообщение от daria13 Посмотреть сообщение
age = data['Age'].tolist()
Попробуйте так
Python
1
age = [int(i) for i in data['Age']]
Если появится None, то добавить
Python
1
age = [int(i) for i in data['Age'] if i != None]
0
daria13
0 / 0 / 1
Регистрация: 28.12.2016
Сообщений: 16
12.02.2017, 13:20  [ТС] #9
Цитата Сообщение от Ennjin Посмотреть сообщение
Попробуйте так
ValueError: cannot convert float NaN to integer
Ладно, спасибо, я забила)))
0
shsv
321 / 235 / 114
Регистрация: 20.05.2016
Сообщений: 503
12.02.2017, 13:30 #10
Убрать nan из age
Python
1
2
3
import math
...
age = [e for e in age if not math.isnan(e)]
Вы чем, кстати, читаете csv?
0
alex925
2569 / 2220 / 527
Регистрация: 19.03.2012
Сообщений: 8,664
12.02.2017, 13:54 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
daria13,
Python
1
2
3
4
a = [1, float('nan'), 2, 3, float('nan'), 2]
a = list(filter(lambda i: str(i) != 'nan', a))
a
[1, 2, 3, 2]
1
daria13
0 / 0 / 1
Регистрация: 28.12.2016
Сообщений: 16
12.02.2017, 14:19  [ТС] #12
Цитата Сообщение от shsv Посмотреть сообщение
Вы чем, кстати, читаете csv?
pandas

Добавлено через 2 минуты
Цитата Сообщение от alex925 Посмотреть сообщение
a = list(filter(lambda i: str(i) != 'nan', a))
Божечки, спасибо, вроде сработало))))
0
shsv
321 / 235 / 114
Регистрация: 20.05.2016
Сообщений: 503
12.02.2017, 18:13 #13
Цитата Сообщение от daria13 Посмотреть сообщение
нужно посчитать сумму элементов в этом списке.
Python
1
sumofage = data['Age'].sum() # метод сей рассматривает все NaN значения как нули
0
12.02.2017, 18:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2017, 18:13
Привет! Вот еще темы с ответами:

Получение списка процессов и удаление ненужного - Python
Подскажите пожалуйста как удалить самый тяжелый блокнот который запущен на вашем компьютере под Windows? С получением всего списка...

Создание списка из элемента списка - Python
Здравствуйте. Вопрос такой. Есть строка, вводимая пользователем. Строка делится на слова (посредством list), затем из каждого слова...

Написать код программы, выполняющей растяжку списка и вставку, удаление из списка и сжатие списка - C++
Люди ПОМОГИТЕ осталось совсем мало , мне нужна помощь!!! написать код программ: 1) Написать код программы, выполняющей растяжку...

Добавление и удаление элементов списка, очистка списка, просмотр списка - Pascal ABC
Добрый вечер! помогите пожалуйста с решением не простой задачи. Предусмотреть меню, позволяющее выполнять основные операции со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.