- 强推Theodore Petrou的《Pandas Cookbook》(2017 Packt Publishing)以及pandas的官方手册(pandas的官方文档写的太棒了)
pd.DateFrame对象
- 以下
df均代表pd.DataFrame对象 - 以下
s均代表pd.Series对象 -
obj代表大多数类型的对象,包括前两个 - 一个
pd.DataFrame对象的结构如下:
- 一个
pd.Series对象的结构如下:
- Series和DataFrame有大量相同的方法,Series有442个,DataFrame有445个,其中相同的数目为376个。
- 以下出现的方法基本是二者通用的。
数据探索
读入数据
-
pd.read_csv():
初步探索
-
df.head()ordf.tail(): -
df.shape: -
df.info(): -
df.index: -
df.columns: -
df.dtypes: 显示各列的类型 -
df.get_dtype_counts(): 统计各列的类型 -
df.ndim:
进一步探索
-
df.value_counts()ordf.value_counts(normalize=True): 返回各个值的个数 -
df.sizeordf.shape: -
df.count(): -
df.describe(): 默认describe数值类型的列
df.describe(include=[np.object, pd.Categorical]): 非数值类型
其实可以通过查看对应列的类型来获取有哪些类型可以放在include里 -
df.
min(),max(),mean(),median(),std(),sum(): -
s.quantile(): 例如参数为.2or0.2则返回在20%位置的数 -
s.isnull()ors.notnull():返回一个同shape的bool序列 -
s.hasnans: 检测是否有nan -
s.all(): -
s.any():
探索对象类型
-
type(obj): Python内置函数,返回对象的类型信息。 -
issubclass(): 返回布尔值,这是Python内置函数,验证了类之间是否有父子关系。
提取列
-
df.col_nameordf['col_name']: -
s.values: 返回序列的np.ndarray类型 -
Index_obj.tolist(): 将pd.Index对象转成Python的list
提取行
-
df.iloc[num_index_list]:用整数列表选取指定的行,也可使用[start, stop, step]格式 -
df.loc[]:
初步处理
-
s.fillna(): 返回一个nan被填充之后的序列,填充的是给的参数 -
s.dropna(): 返回一个nan被剔除之后的序列 -
s + 1: 序列中每个元素加1 -
-*/**//%: 均可操作 -
s > 1:返回同shape的bool序列 -
<>=<===!=: 均可操作
注:这些基本运算符都是和序列里的每一个元素进行运算。以上基本运算符也有对应的方法版本,如下: -
s.
add(1)sub()mul()div()floordiv()mod()pow()lt()gt()le()ge()eq()ne()
进一步处理
-
df.det_index('index_name')ordf = pd.read_csv('file_name', index_col='index_name'): 设置index的列名字 -
df.reset_index(): 上面的撤销操作 -
df.rename(index={}, columns={}): 用字典替换指定的index_label和column_name -
df['new_col'] = objordf['new_col'] = (df['col_name1'] + df['col_name2']): -
df.drop('col_name', axis='columns'):











网友评论