楼主: yunnandlg
1753 1

[其他] python去除列表中的None值和nan值 [推广有奖]

版主

但问耕耘,莫问收获

院士

0%

还不是VIP/贵宾

-

威望
0
论坛币
251627 个
通用积分
578.6951
学术水平
1667 点
热心指数
1686 点
信用等级
1650 点
经验
173351 点
帖子
1939
精华
0
在线时间
2582 小时
注册时间
2010-8-28
最后登录
2024-5-1

楼主
yunnandlg 在职认证  学生认证  发表于 2021-12-13 04:06:30 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
1
首先去除None值:

list_a=[None,1,1,3]
while None in list_a:
        list_a.remove(None)

这样就可以了。

2
但是这个nan很无解,因为他是在显示出来才表示的nan,如果只是用math或者numpy的nan是没办法去除的。
没法去除的代码:

import numpy as np
import math
#这样做不行!
while np.nan in list_a:
        list_a.remove(np.nan)
#换用math的nan也不行!
while math.nan in list_a:
        list_a.remove(math.nan)


但是np.isnan可以判别得出来是否print出来是nan。
于是没办法,只能新开一个list存这样子,如有更好方法,请在评论指出,不胜感谢!
这个可以:

new_list=[]
for elem in list_a:
        if not np.isnan(elem):
                new_list.append(elem)
# 之后用new_list代替list_a

3
两个一块去了。先把nan的换成None,然后None一次清。

list_a=[elem if not np.isnan(elem) else None for elem in list_a ]
while None in list_a:
        list_a.remove(None)


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python none REMOVE import append

Cause morning rolls around and it's another day of sun.
清晨不久就会来到,又是阳光明媚的一天。
沙发
听雨在小楼 发表于 2021-12-17 01:18:16 |只看作者 |坛友微信交流群
```python
import numpy as np
import pandas as pd
list_a = [None, 1, 1, 3]
ser = pd.Series(list_a)
ser.dropna()
1    1.0
2    1.0
3    3.0```
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-2 19:24