把dataFrame的空字符串的處理和replace函數的用法


import numpy as np

required_input = required_input.replace(np.nan, '')
query_result_input = query_result_input.replace(np.nan, '')

將指定列toy的空值替換成指定值100:
df.replace({'toy':{np.nan:100}})

篩選有缺失值的行
df.loc[df.isna().any(1)]

篩選沒有缺失值的行

df.loc[~df.isna().any(1)]

篩選有缺失值的列
df.loc[:,df.isna().any()]

篩選沒有缺失值的列
df.loc[:,~df.isna().any()]

把空值置換為待補充
df.fillna("待補充")
把空值置換為0
df.fillna(0)

插值填充,例如excel的下拉填充
df.interpolate()

刪除有空值的行
df.dropna()
df.dropna(how='all')

刪除B或者D列中有空值的行

ss.dropna(subset=['B','D'],inplace=True)

刪除有缺失值的列
df.dropna(1)
df.dropna(axis=1)
df.dropna(axis='columns')

時間數據的缺失值用NaT表示

整型數據的缺失值用NaN表示

缺失值的運算:
加法會把缺失值當作0,忽略缺失值,累加函數cumsum()
df.d.cumsum()
cumsum() 和cumprod()會忽略NA值,但值會保留在序列中

df.D.cumsum(skipna=False) 跳過有缺失值的計算並且返回缺失值

對每一列進行求和:
df.sum()
對每一列進行求個數,忽略空值:
qq = ss.count()
對每一行進行求個數,忽略空值
qq = ss.count(1)

在做聚合分析的時候,如果聚合分組的列里有空值,則會自動忽略這些值,直接不顯示:
df.groupby['B'].sum()
如果計算中需要計入有空值的分組,可以將dropna=False傳給df.groupby():
df.groupby('B',dropna=False).sum()

ser = pd.Series([0.,1.,2.,3.,4.])
把序列里的0替換為5
ser = ser.replace(0,5)
把序列的0替換為4,1替換為3。。。

ser = ser.replace([0,1,2,3,4],[4,3,2,1,0])
用字典映射對應的值,把0替換為10,把1替換為100
ser = ser.replace({0:10,1:100})
以上針對一個Serries,相當於df的某一列

一下針對於df
把df的a列的0替換為100和df的b列的5替換為100
df = df.replace({'a':0,'b':5},100)
指定列里的替換規則:把a列里的0替換為100,a列里的4替換為400
df.replace({'a':{0:100,4:400}})

找出重復值,按行,重復的全部標志為True
dfj = df5.duplicated(keep=False)

保留重復的最后一個,第一次出現的字符標記為True,例如,1 1,把第一個1出現的標記為True
dfj = df5.duplicated(keep='last')

篩選出重復的內容:
dfj = df[df5.duplicated()]

指定篩選哪列的重復內容:、
df6 = df5.duplicated(subset='B',keep=False)

 

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM