数据的引用
语法 | 说明 |
---|---|
df[label] | 指定DataFrame对象的列标签并选择列 |
df[[label1,label2]] | 指定DataFrame对象的多个列标签并选择多个列 |
df[loc:loc] | 指定DataFrame行位置索引并选择行,终止元素不选择 |
df.loc[label] | 指定DataFrame行索引并选择行,类似df.loc[label,:] |
df.loc[:,lable | 选择DaaFrame对象的列标签并选择对应列 |
df.loc[label1,label2] | 指定DataFrame的行标签和列标签,并选择元素 |
df.iloc[loc] | 选择DataFrame行位置索引,与df.iloc[loc:]等同 |
df.iloc[[loc1,loc2]] | 指定DataFrame多个行位置索引进行选择 |
df.iloc[:,loc] | 指定DataFrame的列位置索引进行选择 |
df.iloc[loc1,loc2 | 指定DataFrame的行位置索引和列位置索引进行选择 |
缺失值
在处理缺失值过程中,需要注意NAN不能使用==进行比较,这与python中的None存在不同,在python中,None可以使用None进行比较的。
在处理包含缺失值计算过程中,NAN是可以传播的,传播的意思表示只要包含一个NAN,运算结果也会是NAN。
缺失值的确认
DataFrame.isnull()
DataFrame.isna()
DataFrame.notna()
DataFrame.dropna(axis,how,thresh,subset,inplace)
pandas.isna()
pandas.isnull()
pandas.notna()
isnull,isna,notna,都是用于判断是否存在NAN,在使用isnull,isna方法时,方法会对缺失值位置返回True,其他位置返回False,notna则相反
dropna是返回删除缺失值行后的结果,
缺失值的填充
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
- value: 变量、字典、Series,DataFrame;用于填充填充缺失值,或指定为每个索引(对于Series)或列(对于DataFrame)的缺失值使用字典/Series/DataFrame的值填充
- method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, 默认None, pad/ffill表示向后填充空值,backfill/bfill表示向前填充空值
- axis: {0 or ‘index’, 1 or ‘columns’}
- inplace: boolean, 默认为False。若为True, 在原地填满
- limit: int, 默认为None, 如果指定了方法, 则这是连续的NaN值的前向/后向填充的最大数量
- downcast: dict, 默认None, 字典中的项为类型向下转换规则。
重复值处理
重复行检测
DataFrame.duplicated(subset,keep)
- subset:检测重复的数据范围。默认为数据集的所有列,可指定特定数据列
- keep: 标记哪个重复数据,默认为‘first’。1.‘first’:标记重复数据第一次出现为True;‘last’:标记重复数据最后一次出现为True;False:标记所有重复数据为True。
删除重复行
DataFrane,drop_duplcates(subset,keep,inplace,ignore_index)
- subset:column label or sequence of labels, optional,需要删除的列,默认是全部的列
- keep:{‘first’, ‘last’, False}, default,‘first’,确定要保留的重复项(如果有),first和last分别是第一次和最后一次,false则是删除所有的重复项
- inplace:bool, default False,是否覆盖原来的df
- ignore_index:bool, default False