亲宝软件园·资讯

展开

python pandas删除特定行列

lucky科技汪 人气:0

dropna() 方法过滤任何含有缺失值的行

pandas.DataFrame里,如果一行数据有任意值为空,则过滤掉整行,这时候使用dropna()方法是合适的。下面的案例,任意列只要有一个为空数据,则整行都干掉。但是我们常常遇到的情况,是根据一个指标(一列)数据的情况,去过滤行数据,类似Excel里面的过滤漏斗,怎么办?

>>> import pandas as pd
>>> data = pd.DataFrame([[1.,6.5,3.],[1.],[],[6.5,3.]],index=list('abcd'),columns=list('def'))
>>> data
     d    e    f
a  1.0  6.5  3.0
b  1.0  NaN  NaN
c  NaN  NaN  NaN
d  6.5  3.0  NaN
>>> data.dropna() #任意列只要有一个为空数据,则整行都干掉
     d    e    f
a  1.0  6.5  3.0

方法一:dropna() 其他参数解析

原文链接,我们引入了dropna()方法的其他参数。

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

参数说明:

>>> data.dropna(axis=0,subset=['e'])  #axis=0,删除行,在subset的列中进行查看
     d    e    f
a  1.0  6.5  3.0
d  6.5  3.0  NaN

方法二:替换并删除,Python pandas 如果某列值为空,过滤删除所在行数据

如上面的data数据,如果希望“e”列数值为空NaN时,删除对应行也就是“b、c”行数据,保留其他行,用dropna()似乎比较麻烦。 这个时候的思路是:

>>> data['e']=data['e'].fillna(999999)
>>> find_index=data[(data.e==999999)].index.tolist()
>>> find_index
['b', 'c']
>>> data.drop(find_index)
     d    e    f
a  1.0  6.5  3.0
d  6.5  3.0  NaN

总结

加载全部内容

相关教程
猜你喜欢
用户评论