日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

pandas删除某列有空值的行_Python-零基础学习Pandas知识点整理(2)

發布時間:2023/12/10 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pandas删除某列有空值的行_Python-零基础学习Pandas知识点整理(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DataFrame數據的清洗--預處理操作

import pandas as pd

import numpy as np

#DataFrame數據框行或列的刪除
#df.drop(labels=None,axis=0,index=None,columns=None,level=None,inplace=False,error="raise")
#labels 表示需要刪除的行或列的標簽,多行或多列用列表傳入數據 labels=["a","b"]
#axis 表示刪除的是行或列 如果指定了index或columns參數,那么axis可以不傳入。
# index 表示需要刪除的行的索引
# columns 表示需要刪除的列索引
#inplace 傳入bool類型數據,True表示改變原DataFrame,False表示不改變原DataFrame
#使用drop刪除行或列時,可以使用條件判斷進行刪除。
# df.drop(df[(df["a"]=="5")&(df["b"]==6)]) #表示刪除df中"a"列中值等于5并且"b"列中值等于6的行數據(由于沒有指定axis,默認為0)
##注釋:df[df["a"]==5] 表示選擇"a"列中值為5對應的行; 先選擇"a"這列,然后選擇"a"列中值等于5的這行.
df[df["b"]==5]
#DataFrame數據框數據的去重:
df.duplicated(subset=["b","k"]) #默認情況下是判斷DataFrame中每行數據是否有重復值,返回bool值的Series;如果傳入參數subset= 表示指定對應的columns,返回的是指定列中是否存在重復值的行。
#因此duplicated是橫向判斷重復值,返回對應的Series數據,在使用是一般是不需要傳入subset參數的,需要判斷多列是否存在重復值的行,以列表[] 形式傳入參數。
'''如果指定了某列,則返回某列的布爾值Series。不寫subset參數,則表示對整個df進行判斷(判斷整個是否存在完全相同的行,如果存在完全相同的行,則該行顯示True,
如果兩行中的對應的好幾列中有一個值不同,則表示不是重復,返回False),則返回整個df的布爾值Series(也是按一列布爾值輸出)'''
df.drop_duplicates() #默認情況下對特定的列進行去重,也就是去除指定列中含有重復值的行。
#Df.drop_duplicates(subset=None,keep="first",inplace=False)
'''Subset= " " #用來指定特定的列,默認是所有列。通俗來講就是指定某列,需要刪除某列中含有重復的數據,如果有重復數據,則所在重復數據的整行會被直接刪除,相當與是跨行操作。如果SubSet=["A","B"],也就是A和B列對應位置的值相同時才被刪除該行,不相同的話就算A中有再多的重復值都不會被刪除。
Keep="first" 保留第一次出現的值,"last" 保留最后一次出現的值
Inplace=True /False 是否替換原來的df,默認為False,即不替換。'''
#DataFrame中缺失值的判斷 isna() / isnull(),notnull()
df1.isna() #判斷df中是否存在缺失值,返回與df相同的布爾類型的DataFrame
df1.isnull() #判斷df1中是否存在缺失值。與isna()作用相同。 由于是對每個位置的元素進行判斷,因此返回和原來相同的DataFrame布爾值。
#DataFrame缺失值填充fillna()
#df.fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=None) #對df中的缺失值進行填充指定的值,method與value不能共存。
# '''value 表示需要用于填充缺失值的值。可以通過字典的方式對不同列的空值填充不同的值,例如:df.fillna({"A":0,"B":1,"C":3} "A"列中的空值填充為0;"B"列的空值填充為1;"C"列中的空值填充為3.
# axis 表示填充的維度,是按照行填充還是按照列進行填充。
# method 表示填充的方法,ffill:用缺失值前面的一個值代替缺失值,如果axis =1,那么就是橫向的前面的值替換后面的缺失值,如果axis=0,那么則是上面的值替換下面的缺失值。backfill/bfill,缺失值后面的一個值代替前面的缺失值。注意這個參數不能與value同時出現
# limit 表示確定填充的個數,例如limit=3 表示只填充df中的兩個空值。
# inplace 布爾類型,是否改變原df。'''
#DataFrame值的替換 replace()
#df.replace(to_replace=None,value=None,inplace=False,limit=None,regex=False,method="pad",axis=None)
#簡單的理解就是需要在df中的某個值替換成另一個值。
# to_replace : 需要被替換的值,可以通過字典來指定將多個值分別進行替換,作用與Series中replace相同。
# value : 用該值來替換to_replace的值。
'''
df.replace({"A":3,"B":"小明"},20) #表示將df的"A"列中對應的3和“B”列中對應的"小明",用20來進行替換。
df.replace(3,"A") #表示將df中value值中存在的3,全部替換成"A"。
df["年齡"].replace(3,"A") #表示只將df中"年齡"對應列中的3,替換成 "A",其他地方的3不會改變。'''
#DataFrame的分組操作 groupby() 返回的是分組后的groupby數據類型。
#df.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=<object>,observed=False,dropna=True) #進行數據分組,以及進行組內運算.
# by : 表示需要分組的列。
#axis : 表示是按照行分組還是按照列進行分組。
df["b"].groupby(by=df["k"]).count() #表示按照df中"a"列數據進行分組,并統計個分組后的數據的個數。
df.groupby(by=df["k"]).count() #表示將df按照"k"列進行分組,返回k列中元素分組后的個數,df有多少列,就返回多少列,值都是一樣的。因此可以通過如下選擇其中需要的列即可:
df.groupby(by=df["b"])["d"].count() #返回分組后d列對應的元素個數返回值。

【內容持續更新... 如果覺得對你有幫助,幫忙點個收藏和關注,謝謝!】

總結

以上是生活随笔為你收集整理的pandas删除某列有空值的行_Python-零基础学习Pandas知识点整理(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。