Pandas学习笔记 ——001
1. 数据类型
Series:带标签的一维数组
DataFrame:带标签的,大小可变的,二维异构表格
1 | import numpy as np |
2. 使用技巧
1. sort_indedx和sort_value
sort_index(axis=0, level=None, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’, sort_remaining=True, ignore_index: bool = False,)
axis:0按行名排序,1按列名排序
ascending:默认True升序排列;False降序排列
inplace:默认False,否则排序之后的数据直接替换原来的数据框
kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心
na_position:缺失值默认排在最后{“first”,“last”}
sort_values(by, axis=0, ascending=True, inplace=False, kind=”quicksort”, na_position=”last”, ignore_index=False)
by: str or list of str;如果axis=0,那么by=”列名”;如果axis=1,那么by=”行名” # 必须给出参数
1
2
3
4
5
6
7
8
9
10 df = pd.DataFrame({'b':[1,2,3,2],'a':[4,3,2,1],'c':[1,3,8,2]},index=[2,0,1,3])
b a c
2 1 4 1
0 2 3 3
1 3 2 8
3 2 1 2
按b列升序排序: df.sort_values(by='b') # 等同于df.sort_values(by='b',axis=0)
先按b列降序,再按a列升序排序: df.sort_values(by=['b','a'],axis=0,ascending=[False,True]) # 等同于df.sort_values(by=['b','a'],axis=0,ascending=[False,True])
按行3升序排列: df.sort_values(by=3,axis=1) # 必须指定axis=1
按行3升序,行0降排列: df.sort_values(by=[3,0],axis=1,ascending=[True,False])
2. 对于无效数据的处理
空值:在pandas中的空值是””
缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可
相关函数: df.dropna()、df.fillna()、df.isnull()、df.isna()函数: df.dropna(axis=0, how=’any’, thresh=None, subset=None, inplace=False)
删除表中全部为NaN的行: df.dropna(axis=0,how=’all’)
删除表中含有任何NaN的行: df.dropna(axis=0,how=’any’)
删除表中全部为NaN的列: df.dropna(axis=1,how=’all’)
删除表中含有任何NaN的列: df.dropna(axis=1,how=’any’)
thresh(int): axis中至少有int个非缺失值,否则删除
subset: array-like, optional,Labels along other axis to consider, e.g. if you are dropping rows these would be a list of columns to include.
函数: df.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
method{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None 说明用前面数据‘ffill’/‘pad’替换后面NaN数据 ‘backfill’/‘bfill’则相反