.head()
作用对象:Series
和DataFrame
主要用途:返回DataFrame
的前N行。当数据量较大时,使用.head()
可以快速对数据有个大致了解。
用法:
In [16]: data.head() Out[16]: company salary age 0 NaN 43 21 1 A 8 41 2 A 28 26 3 C 42 28 4 A 33 26
.info()
作用对象:Series
和DataFrame
主要用途:打印所用数据的一些基本信息,包括索引和列的数据类型和占用的内存大小。
用法:
In [17]: data.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 9 entries, 0 to 8 Data columns (total 3 columns): company 8 non-null object salary 9 non-null int32 age 9 non-null int32 dtypes: int32(2), object(1) memory usage: 224.0+ bytes
.describe()
作用对象:Series
和DataFrame
主要用途:生成描述性统计汇总,包括数据的计数和百分位数,有助于了解大致的数据分布
用法:
In [18]: data.describe() Out[18]: salary age count 9.000000 9.000000 mean 31.777778 27.111111 std 12.804079 9.143911 min 8.000000 18.000000 25% 25.000000 21.000000 50% 33.000000 26.000000 75% 42.000000 28.000000 max 48.000000 43.000000
.value_counts()
作用对象:Series
主要用途:统计分类变量中每个类的数量,比如company
中各个公司都有多少人
主要参数:
- normalize (boolean, default False)
返回各类的占比 - sort (boolean, default True)
是否对统计结果进行排序 - ascending (boolean, default False)
是否升序排列
用法:
In [19]: data['company'].value_counts() Out[19]: A 4 B 2 C 2 Name: company, dtype: int64 # 返回占比情况 In [20]: data['company'].value_counts(normalize=True) Out[20]: A 0.50 B 0.25 C 0.25 Name: company, dtype: float64 # 升序排列 In [21]: data['company'].value_counts(ascending=True) Out[21]: C 2 B 2 A 4 Name: company, dtype: int64
.isna()
作用对象:Series
和DataFrame
主要用途:判断数据是否为缺失值,是的话返回True
,否的话返回False
用法:
In [22]: data.isna() Out[22]: company salary age 0 True False False 1 False False False 2 False False False 3 False False False 4 False False False 5 False False False 6 False False False 7 False False False 8 False False False
.any()
作用对象:Series
和DataFrame
主要用途:大多数情况下数据量较大,不可能直接isna()
后一个一个看是否是缺失值。any()
和isna()
结合使用可以判断某一列是否有缺失值。
用法:
In [23]: data.isna().any() Out[23]: company True salary False age False dtype: bool
.dropna()
作用对象:Series
和DataFrame
主要用途:删掉含有缺失值的数据
用法:
In [24]: data.dropna() Out[24]: company salary age 1 A 8 41 2 A 28 26 3 C 42 28 4 A 33 26 5 C 20 18 6 A 48 43 7 B 25 23 8 B 39 18
.fillna()
作用对象:Series
和DataFrame
主要用途:填充缺失数据
主要参数:
- value (scalar, dict, Series, or DataFrame)
用于填充缺失值的值 - method ({‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None)
缺失值的填充方式,常用的是bfill
后面的值进行填充,ffill
用前面的值进行填充 - inplace (boolean, default False)
是否作用于原对象
用法:
In [26]: data.fillna('B') Out[26]: company salary age 0 B 43 21 1 A 8 41 2 A 28 26 3 C 42 28 4 A 33 26 5 C 20 18 6 A 48 43 7 B 25 23 8 B 39 18 # 用缺失值后面的值来填充(这里NaN后面是'A') In [25]: data.fillna(method='bfill') Out[25]: company salary age 0 A 43 21 1 A 8 41 2 A 28 26 3 C 42 28 4 A 33 26 5 C 20 18 6 A 48 43 7 B 25 23 8 B 39 18
.sort_index()
作用对象:Series
和DataFrame
主要用途:对数据按照索引进行排序
主要参数:
- ascending (boolean, default False)
是否升序排列 - inplace (boolean, default False)
是否作用于原对象
用法:
# 按索引降序排列 In [27]: data.sort_index(ascending=False) Out[27]: company salary age 8 B 39 18 7 B 25 23 6 A 48 43 5 C 20 18 4 A 33 26 3 C 42 28 2 A 28 26 1 A 8 41 0 NaN 43 21
.sort_values()
作用对象:Series
和DataFrame
主要用途:对DataFrame
而言,按照某列进行排序(用by
参数控制),对Series
按数据列进行排序。
主要参数:
- by (str or list of str)
作用于DataFrame
时需要指定排序的列 - ascending (boolean, default False)
是否升序排列
In [28]: data.sort_values(by='salary') Out[28]: company salary age 1 A 8 41 5 C 20 18 7 B 25 23 2 A 28 26 4 A 33 26 8 B 39 18 3 C 42 28 0 NaN 43 21 6 A 48 43