最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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中有任意一個(gè)元素為T(mén)rue就返回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ì)空值個(gè)數(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]
    })

    # 每一列有多少個(gè)nan
    nan_column = df.isnull().values.astype(int).sum(axis=0)
    # 各列的nan個(gè)數(shù)
    nan_column_name = df.isnull().sum()
    print(nan_column)
    print('*'*10)
    print(nan_column_name)
    print('*'*10)
    # nan的總個(gè)數(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ì)每行/列空值的個(gè)數(shù),以及所有空值的個(gè)數(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

上面的代碼,分別對(duì)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ù),然后通過(guò)分組值來(lái)獲取當(dāng)前分組的平均值,最后利用fillna來(lái)填充這個(gè)平均值即可。

代碼輸出如下:

   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é)

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

相關(guān)文章

  • Python常用配置文件ini、json、yaml讀寫(xiě)總結(jié)

    Python常用配置文件ini、json、yaml讀寫(xiě)總結(jié)

    用的配置文件格式有ini、json、yaml等,下面簡(jiǎn)單給大家介紹下,Python如何讀寫(xiě)這幾種格式的文件,對(duì)Python讀寫(xiě)ini、json、yaml配置文件相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-07-07
  • Python連接MinIO的完整指南

    Python連接MinIO的完整指南

    MinIO作為高性能的分布式對(duì)象存儲(chǔ)系統(tǒng),憑借與Amazon S3兼容的API和云原生架構(gòu),成為企業(yè)級(jí)數(shù)據(jù)存儲(chǔ)的優(yōu)選方案,本文將系統(tǒng)講解Python連接MinIO的全流程,涵蓋從環(huán)境搭建到生產(chǎn)部署的完整實(shí)踐路徑,需要的朋友可以參考下
    2025-09-09
  • pycharm開(kāi)發(fā)工具使用plt.show()不顯示圖像的解決方案

    pycharm開(kāi)發(fā)工具使用plt.show()不顯示圖像的解決方案

    文章描述了在使用PyCharm開(kāi)發(fā)工具時(shí),`plt.show()`不顯示圖像的問(wèn)題,并提供了兩種解決方法:首先是在設(shè)置中取消勾選“PythonScientific”選項(xiàng),然后重新運(yùn)行程序即可顯示圖像
    2026-03-03
  • python實(shí)現(xiàn)批量修改圖片格式和尺寸

    python實(shí)現(xiàn)批量修改圖片格式和尺寸

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量修改圖片格式和尺寸的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 基于Python實(shí)現(xiàn)文件的壓縮與解壓縮

    基于Python實(shí)現(xiàn)文件的壓縮與解壓縮

    在日常工作中,除了會(huì)涉及到使用Python處理文本文件,有時(shí)候還會(huì)涉及對(duì)壓縮文件的處理。本文為大家總結(jié)了利用Python可以實(shí)現(xiàn)的幾種文件壓縮與解壓縮實(shí)現(xiàn)代碼,需要的可以參考一下
    2022-03-03
  • python多線(xiàn)程抓取天涯帖子內(nèi)容示例

    python多線(xiàn)程抓取天涯帖子內(nèi)容示例

    這篇文章主要介紹了python多線(xiàn)程抓取天涯帖子內(nèi)容示例,需要的朋友可以參考下
    2014-04-04
  • Python實(shí)現(xiàn)一鍵生成自解壓源碼文件并打包項(xiàng)目

    Python實(shí)現(xiàn)一鍵生成自解壓源碼文件并打包項(xiàng)目

    這篇文章主要為大家詳細(xì)介紹了一個(gè)Python自解壓源碼方案,可將項(xiàng)目源碼打包成單個(gè).py文件,方便分發(fā)和存檔,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2026-01-01
  • 解決Pycharm輸入法無(wú)法切換中英文問(wèn)題

    解決Pycharm輸入法無(wú)法切換中英文問(wèn)題

    這篇文章主要介紹了解決Pycharm輸入法無(wú)法切換中英文問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python Numpy學(xué)習(xí)之索引及切片的使用方法

    Python Numpy學(xué)習(xí)之索引及切片的使用方法

    數(shù)組中的元素可以通過(guò)索引以及切片的手段進(jìn)行訪(fǎng)問(wèn)或者修改,和列表的切片操作一樣。本文將詳細(xì)為大家介紹一下Python中的科學(xué)計(jì)算庫(kù)-Numpy的索引及切片的使用方法
    2022-01-01
  • python內(nèi)置函數(shù)frozenset()的使用小結(jié)

    python內(nèi)置函數(shù)frozenset()的使用小結(jié)

    本篇文章主要介紹了python內(nèi)置函數(shù)frozenset()的使用小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論

吴川市| 霍城县| 福州市| 家居| 五寨县| 江西省| 霞浦县| 高安市| 塔城市| 无极县| 于田县| 介休市| 城市| 合江县| 龙游县| 奈曼旗| 黑龙江省| 成安县| 屏东市| 横峰县| 武川县| 湄潭县| 望都县| 社旗县| 定日县| 和硕县| 抚宁县| 昭通市| 依安县| 双鸭山市| 兴仁县| 荔浦县| 麻江县| 秭归县| 滨海县| 叶城县| 绩溪县| 商水县| 余干县| 若尔盖县| 茂名市|