欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas dataframe統(tǒng)計(jì)填充空值方式

 更新時間:2024年02月22日 15:37:05   作者:bitcarmanlee  
這篇文章主要介紹了pandas dataframe統(tǒng)計(jì)填充空值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1.判斷dataframe是否有空值

def t2():
    df = pd.DataFrame({
        'name': ['lili', 'lucy','pegga','alin',np.nan],
        'age': [18, 16, np.nan, 23, np.nan],
        'salary': [np.nan, 300, np.nan, 1000, 800]
    })
    df_contains_nan = df.isnull()
    print(df_contains_nan)

    df_contains_nan_2 = df.isna()
    print(df_contains_nan_2)

上面的代碼將輸出

    name    age  salary
0  False  False    True
1  False  False   False
2  False   True    True
3  False  False   False
4   True   True   False
    name    age  salary
0  False  False    True
1  False  False   False
2  False   True    True
3  False  False   False
4   True   True   False

isnull,isna方法都是判斷df中的元素是否為空,然后輸出True/False。

要判斷df中是否有空元素,只需要稍加改變

def t3():
    df = pd.DataFrame({
        'name': ['lili', 'lucy','pegga','alin',np.nan],
        'age': [18, 16, np.nan, 23, np.nan],
        'salary': [np.nan, 300, np.nan, 1000, 800]
    })
    contains_nan = df.isnull().values.any()
    print(contains_nan)

any方法只要ndarray中有任意一個元素為True就返回True。

    def any(self, axis=None, out=None, keepdims=False): # real signature unknown; restored from __doc__
        """
        a.any(axis=None, out=None, keepdims=False)
        
            Returns True if any of the elements of `a` evaluate to True.
        
            Refer to `numpy.any` for full documentation.
        
            See Also
            --------
            numpy.any : equivalent function
        """
        pass

2.統(tǒng)計(jì)空值個數(shù)

def t4():
    df = pd.DataFrame({
        'name': ['lili', 'lucy','pegga','alin',np.nan],
        'age': [18, 16, np.nan, 23, np.nan],
        'salary': [np.nan, 300, np.nan, 1000, 800]
    })

    # 每一列有多少個nan
    nan_column = df.isnull().values.astype(int).sum(axis=0)
    # 各列的nan個數(shù)
    nan_column_name = df.isnull().sum()
    print(nan_column)
    print('*'*10)
    print(nan_column_name)
    print('*'*10)
    # nan的總個數(shù)
    nan_all = df.isnull().sum().sum()
    print(nan_all)

[1 2 2]
**********
name      1
age       2
salary    2
dtype: int64
**********
5

上面的代碼,展示了統(tǒng)計(jì)每行/列空值的個數(shù),以及所有空值的個數(shù)。

3.按列填充空值

def t5():
    df = pd.DataFrame({
        'name': ['lili', 'lucy','pegga','alin',np.nan],
        'age': [18, 16, np.nan, 23, np.nan],
        'salary': [np.nan, 300, np.nan, 1000, 800]
    })
    print(df)

    df.name = df.name.fillna('unknown')
    df.age = df.age.fillna(df.age.mean())
    df.salary = df.salary.fillna(df.salary.max())

    print(df)

    name   age  salary
0   lili  18.0     NaN
1   lucy  16.0   300.0
2  pegga   NaN     NaN
3   alin  23.0  1000.0
4    NaN   NaN   800.0
      name   age  salary
0     lili  18.0  1000.0
1     lucy  16.0   300.0
2    pegga  19.0  1000.0
3     alin  23.0  1000.0
4  unknown  19.0   800.0

上面的代碼,分別對name, age, salary列按固定值,當(dāng)前列平均值,當(dāng)前列最大值填充。

fillna函數(shù)有inplace參數(shù),下面代碼的效果與之前填充一致。

def t52():
    df = pd.DataFrame({
        'name': ['lili', 'lucy','pegga','alin',np.nan],
        'age': [18, 16, np.nan, 23, np.nan],
        'salary': [np.nan, 300, np.nan, 1000, 800]
    })
    print(df)

    df.name.fillna('unknown', inplace=True)
    df.age.fillna(df.age.mean(), inplace=True)
    df.salary.fillna(df.salary.max(), inplace=True)
    print(df)

4.按分組平均值填充

def t6():
    df = pd.DataFrame({
        'level': ['A','A','A','A','B','B','B','B','C','C','C'],
        'score': [2,1,3,np.nan,4,6,5,np.nan,7,9,np.nan],
    })

    fun = lambda x: x.fillna(df.groupby('level').score.mean()[x.level])
    df = df.apply(lambda x: fun(x), axis=1)
    # 以下一行代碼也可以實(shí)現(xiàn)相同功能
    #df = df.apply(lambda x: x.fillna(df.groupby('level').score.mean()[x.level]), axis=1)
    print(df)

上面的代碼,將score按level分組的平均值填充。

fun傳入一行數(shù)據(jù),然后通過分組值來獲取當(dāng)前分組的平均值,最后利用fillna來填充這個平均值即可。

代碼輸出如下:

   level  score
0      A    2.0
1      A    1.0
2      A    3.0
3      A    2.0
4      B    4.0
5      B    6.0
6      B    5.0
7      B    5.0
8      C    7.0
9      C    9.0
10     C    8.0

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pytho的HTTP交互httpx包模塊使用詳解

    Pytho的HTTP交互httpx包模塊使用詳解

    Python 的 httpx 包是一個用于 HTTP 交互的一個優(yōu)秀且靈活的模塊。本文進(jìn)行詳細(xì)的講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • Flask框架 CSRF 保護(hù)實(shí)現(xiàn)方法詳解

    Flask框架 CSRF 保護(hù)實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Flask框架 CSRF 保護(hù)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Flask-WTF針對CSRF攻擊的防護(hù)相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • python打包exe開機(jī)自動啟動的實(shí)例(windows)

    python打包exe開機(jī)自動啟動的實(shí)例(windows)

    今天小編就為大家分享一篇python打包exe開機(jī)自動啟動的實(shí)例(windows),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python判斷telnet通不通的實(shí)例

    Python判斷telnet通不通的實(shí)例

    今天小編就為大家分享一篇Python判斷telnet通不通的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python Tornado 實(shí)現(xiàn)SSE服務(wù)端主動推送方案

    Python Tornado 實(shí)現(xiàn)SSE服務(wù)端主動推送方案

    SSE是Server-Sent Events 的簡稱,是一種服務(wù)器端到客戶端(瀏覽器)的單項(xiàng)消息推送,本文主要探索兩個方面的實(shí)踐一個是客戶端發(fā)送請求,服務(wù)端的返回是分多次進(jìn)行傳輸?shù)?直到傳輸完成,這種情況下請求結(jié)束后,考慮關(guān)閉SSE,所以這種連接可以認(rèn)為是暫時的,感興趣的朋友一起看看吧
    2024-01-01
  • 在Django中管理Users和Permissions以及Groups的方法

    在Django中管理Users和Permissions以及Groups的方法

    這篇文章主要介紹了在Django中管理Users和Permissions以及Groups的方法,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • Python中格式化字符串的方法總結(jié)

    Python中格式化字符串的方法總結(jié)

    字符串格式化是一項(xiàng)常見且重要的操作,用于動態(tài)生成包含變量內(nèi)容的字符串,本文為大家整理一些常用的格式化字符串方法,希望對大家有所幫助
    2024-10-10
  • 在pandas中遍歷DataFrame行的實(shí)現(xiàn)方法

    在pandas中遍歷DataFrame行的實(shí)現(xiàn)方法

    這篇文章主要介紹了在pandas中遍歷DataFrame行的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python持久性管理pickle模塊詳細(xì)介紹

    python持久性管理pickle模塊詳細(xì)介紹

    這篇文章主要介紹了python持久性管理pickle模塊詳細(xì)介紹,本文講解了什么是持久性、一些經(jīng)過 pickle 的 Python等內(nèi)容,并講給出了18個使用示例,需要的朋友可以參考下
    2015-02-02
  • python使用openpyxl庫讀寫Excel表格的方法(增刪改查操作)

    python使用openpyxl庫讀寫Excel表格的方法(增刪改查操作)

    這篇文章主要介紹了python使用openpyxl庫讀寫Excel表格的方法(增刪改查操作),本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05

最新評論