缺失值
pd.options.mode.use_inf_as_na = True
df.isna()
df.isnull()
df.notna()
df.isnull().sum()
df.isnull().sum(1)
df.loc[df.isnull().any(1)]
df.loc[df[''].isnull().any(1)]
df[''][df[''].isnull()]
df.loc[:,df.isnull().any()]
df.loc[:,df[''].isnull().any()]
'''
Pandas 1.0以后的版本中引入了一个专门表示缺失值的标量pd.NA,它代表空整数、空布尔、空字符,这个功能目前处于实验阶段。pd.NA的目标是提供一个“缺失值”指示器,该指示器可以在各种数据类型中一致使用(而不是np.nan、None或pd.NaT,具体取决于数据类型)。
'''
df.loc[0]=None
df.loc[1]=np.nan
df.A = pd.NA
缺失值的操作
df.fillna(0)
df.fillna('missing')
df.fillna(0, limit=1)
df.fillna(method = '')
df.fillna(dff.mean())
df.interpolate(method='')
df.dropna()
df.dropna(1)
df.dropna(
axis=,
how='all',
thresh=2,
subset=['name','born'],
inplace=True)
加法会忽略缺失值,按0处理
累加会忽略缺失值,但NA会保留在结果中,不认为是加的0,skipna=False跳过有缺失值的计算并返回缺失值
count计数时,不计
分组聚合操作时,自动忽略,如果需要计入有空值的分组,可将dropna=False传给df.groupby()
数据替换
df.replace()
df.replace([],method='pad')
df.replace(to_replace='bat', value='new')
df.replace(to_replace=r'^ba.$', value='new',regex=True)
df.replace(regex=[r'^ba.$','foo'], value='new')
df.replace('.',np.nan)
df.replace(r'\s*\.s*',np.nan,regex=True)
df.replace(['a','.'],['b',np.nan])
df.clip(lower, upper)
c = pd.Series([-1, 1, 3])
df.clip(c, c+1, axis=0)
重复值及删除数据
df.duplicated(subset=None, keep='first')
df.drop_duplicates(
subset=None,
keep='first',
inplace=False,
ignore_index=False)
df.drop(labels=None,
axis-0,
index=None,
columns=None,
level=None,
inplace=False,
errors='raise')
NumPy格式转换
ds.to_numpy()
s.array
df.values
df.to_numpy()
同上
np.array(df.to_records())
np.array(df)