相关文章推荐
急躁的饭卡  ·  VBA SolidWorks 二次开发 ...·  1 年前    · 
焦虑的皮带  ·  ASP.NET Core 3.X后出现 ...·  1 年前    · 

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)