[问题] pandas删除空值

楼主: MAGICXX (逢甲阿法)   2020-04-24 19:10:47
大家晚安大家好
我现在有一些资料 他可能含有空值
我想要把他的空值给删掉(一整行或者一整列)
请问该如何处理比较对?
这边是我的资料
他在时序资料内 会有一些空值
https://reurl.cc/5lONv6
因为档案众多 所以我用循环下去跑
a=listdir('./out/')
for i in a:
print i
b=pd.read_csv('./out/'+i,error_bad_lines=False)
b.dropna(axis='columns',how='any',inplace=True,)
b.dropna(axis='index',how='any',inplace=True,)
b.to_csv('./in/'+i,index=False,mode='a',encoding='utf8')
虽然没报错 但是他出来的档案空值的行跟列都还存在
我现在需要他的空值的行列都删除 请问该怎么处理才对?
谢谢
作者: moodoa3583 (金牌台灣啤酒)   2020-04-24 19:18:00
.dropna()噢噢我看到你在循环内有dropna了
楼主: MAGICXX (逢甲阿法)   2020-04-24 20:31:00
这个函数会删掉整栏 还是只会删值啊? index也会删掉吗?
作者: moodoa3583 (金牌台灣啤酒)   2020-04-24 21:18:00
整栏/列都会删掉,看你axis是0还是1,整条row删除后index自然也会消失
楼主: MAGICXX (逢甲阿法)   2020-04-25 01:37:00
可是我这样程式跑过 半行都没删掉耶....我确定里面至少一行(ROWS)跟一列(COLUMNS)都有空格结果都没有删掉...
作者: dary856974 (dary)   2020-04-25 03:39:00
b= b.dropna(axis='columns',how='any',inplace=True,)b=b.dropna(axis='index',how='any',inplace=True,)
作者: weiyanchen (wychen)   2020-04-25 03:46:00
下载你的档案试跑看起来是会删掉空值的才是?https://imgur.com/a/THAoVMU不过若row有空值看起来会全删掉(留下的row跟表头是一样的,没有意义)但若依column来删的话,也只会剩下column date这是你想要的结果吗?但若是你先drop column #7, #8, #16, #25再去dropna看起来会比较合理(单纯依info猜测)https://imgur.com/lkN8y2n类似像上图
作者: Jeffrey11061 (Jeff)   2020-04-25 12:36:00
如果function不是in-place的你要assign呀~
楼主: MAGICXX (逢甲阿法)   2020-04-25 15:55:00
感谢各位大大 其实重点是不要那几排的值 比如说2/30 2/29的 或者是字段根本没有值 缺一整排的空值的...结果我找到问题让程式跑完 剩第一栏的表头 可以请问各位大大还有办法把那些空值删除吗?
作者: dary856974 (dary)   2020-04-25 18:39:00
df = df.loc[:, df.columns.notnull()] 你是这个意思吗?另外dropna一个就可以了,主要是要assign正常的话应该是drop index的就好,再来对col name filter,不知道你是不是要这样

Links booklink

Contact Us: admin [ a t ] ucptt.com