Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
daria13
0 / 0 / 1
Регистрация: 28.12.2016
Сообщений: 56
#1

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

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

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

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

Удаление элементов из списка
Всем привет! У меня проблема с удалением элементов из списка: не получается...

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

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

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

12
alex925
2670 / 2278 / 629
Регистрация: 19.03.2012
Сообщений: 8,830
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
398 / 267 / 187
Регистрация: 20.05.2016
Сообщений: 567
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
77 / 77 / 54
Регистрация: 25.11.2016
Сообщений: 274
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
Сообщений: 56
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
77 / 77 / 54
Регистрация: 25.11.2016
Сообщений: 274
12.02.2017, 12:56 #6
daria13, выложите кусок кода, которым вы считываете список.
у вас в вашем файле только целые числа?
0
daria13
0 / 0 / 1
Регистрация: 28.12.2016
Сообщений: 56
12.02.2017, 13:09  [ТС] #7
Цитата Сообщение от Ennjin Посмотреть сообщение
выложите кусок кода, которым вы считываете список.
у вас в вашем файле только целые числа?
age = data['Age'].tolist()
[]
0
Ennjin
77 / 77 / 54
Регистрация: 25.11.2016
Сообщений: 274
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
Сообщений: 56
12.02.2017, 13:20  [ТС] #9
Цитата Сообщение от Ennjin Посмотреть сообщение
Попробуйте так
ValueError: cannot convert float NaN to integer
Ладно, спасибо, я забила)))
0
shsv
398 / 267 / 187
Регистрация: 20.05.2016
Сообщений: 567
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
2670 / 2278 / 629
Регистрация: 19.03.2012
Сообщений: 8,830
12.02.2017, 13:54 #11
Лучший ответ Сообщение было отмечено daria13 как решение

Решение

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
Сообщений: 56
12.02.2017, 14:19  [ТС] #12
Цитата Сообщение от shsv Посмотреть сообщение
Вы чем, кстати, читаете csv?
pandas

Добавлено через 2 минуты
Цитата Сообщение от alex925 Посмотреть сообщение
a = list(filter(lambda i: str(i) != 'nan', a))
Божечки, спасибо, вроде сработало))))
0
shsv
398 / 267 / 187
Регистрация: 20.05.2016
Сообщений: 567
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

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

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

Создание списка из элемента списка
Здравствуйте. Вопрос такой. Есть строка, вводимая пользователем. Строка...


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

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

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