Pandas:Getting started
2018-08-19 本文已影响1人
ACphart
- 强推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.size
ordf.shape
: -
df.count()
: -
df.describe()
: 默认describe数值类型的列
df.describe(include=[np.object, pd.Categorical])
: 非数值类型
其实可以通过查看对应列的类型来获取有哪些类型可以放在include
里 -
df.
min()
,max()
,mean()
,median()
,std()
,sum()
: -
s.quantile()
: 例如参数为.2
or0.2
则返回在20%位置的数 -
s.isnull()
ors.notnull()
:返回一个同shape的bool序列 -
s.hasnans
: 检测是否有nan
-
s.all()
: -
s.any()
:
探索对象类型
-
type(obj)
: Python内置函数,返回对象的类型信息。 -
issubclass()
: 返回布尔值,这是Python内置函数,验证了类之间是否有父子关系。
提取列
-
df.col_name
ordf['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'] = obj
ordf['new_col'] = (df['col_name1'] + df['col_name2'])
: -
df.drop('col_name', axis='columns')
: