日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python?pandas數據處理之刪除特定行與列_python

作者:lucky科技汪 ? 更新時間: 2022-10-10 編程語言

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)

參數說明:

  • axis:
    • axis=0: 刪除包含缺失值的行
    • axis=1: 刪除包含缺失值的列
  • how: 與axis配合使用
    • how=‘any’ :只要有缺失值出現,就刪除該行或列
    • how=‘all’: 所有的值都缺失,才刪除行或列
  • thresh: axis中至少有thresh個非缺失值,否則刪除。比如 axis=0,thresh=10:標識如果該行中非缺失值的數量小于10,將刪除改行
  • subset: list,在哪些列中查看是否有缺失值
  • inplace: 是否在原數據上操作。如果為真,返回None,否則返回新的copy,去掉了缺失值
>>> 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()似乎比較麻煩。 這個時候的思路是:

  • fillna()給空值填充一個數值(如999999)
  • index.tolist()找出值為填充值所在行的索引
  • drop根據索引干掉對應的行
>>> 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

總結

原文鏈接:https://blog.csdn.net/ITxiaozhang7/article/details/125205172

欄目分類
最近更新