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)

