【Pandas】DataFrame及Series常用方法
Pandas与Python常用数据类型对照表
| Pandas类型 | Python类型 | 说明 |
|---|---|---|
| object | string | 字符串类型 |
| int64 | int | 整形 |
| float64 | float | 浮点型 |
| datetime64 | datetime | 日期时间类型,python中需要加载 |
Series详解
Series是什么
Series是 pandas 中用来存储一维数据的容器
Series是什么样子?
1
2
3
4
5
6
7
8
9 age
0 37
1 61
2 90
3 66
4 56
5 45
6 41
7 77
创建Series
1)创建 Series 的最简单方法是传入一个Python列表
- 如果传入的数据类型是统一的数字,那么最终的 dtype 类型是int64
- 如果传入的数据类型是统一的字符串,那么最终的 dtype 类型是object
- 如果传入的数据类型是多种类型,那么最终的 dtype 类型也是object
2)创建 Series 时,也可以通过 index 参数来指定行标签
1 | s = pd.Series(['banana', 42]) |
Series 常用操作
常用属性和方法:
| 属性或方法 | 说明 |
|---|---|
s.shape |
查看 Series 数据的形状 |
s.size |
查看 Series 数据的个数 |
s.index |
获取 Series 数据的行标签 |
s.values |
获取 Series 数据的元素值 |
s.keys() |
获取 Series 数据的行标签,和 s.index 效果相同 |
s.loc[行标签] |
根据行标签获取 Series 中的某个元素数据 |
s.iloc[行位置] |
根据行位置获取 Series 中的某个元素数据 |
s.dtypes |
查看 Series 数据元素的类型 |
常用统计方法:
| 方法 | 说明 |
|---|---|
s.mean() |
计算 Series 数据中元素的平均值 |
s.max() |
计算 Series 数据中元素的最大值 |
s.min() |
计算 Series 数据中元素的最小值 |
s.std() |
计算 Series 数据中元素的标准差 |
s.value_counts() |
统计 Series 数据中不同元素的个数 |
s.count() |
统计 Series 数据中非空(NaN)元素的个数 |
s.describe() |
显示 Series 数据中元素的各种统计值 |
bool 索引
Series 支持 bool 索引,可以从 Series 获取 bool 索引为 True 的位置对应的数据。
Series 运算
| 情况 | 说明 |
|---|---|
Series 和 数值型数据运算 |
Series 中的每个元素和数值型数据逐一运算,返回新的 Series |
Series 和 另一 Series 运算 |
两个 Series 中相同行标签的元素分别进行运算,若不存在相 同的行标签,计算后的结果为 NaN,最终返回新的 Series |
CodeDemo
1 |
DataFrame 详解
创建 DataFrame
1)可以使用字典来创建DataFrame
2)创建 DataFrame 的时候可以使用colums参数指定列的顺序,也可以使用 index 参数来指定行标签
3)也可以使用嵌套列表创建 DataFrame,并使用 columns 参数指定列标签,使用 index 参数来指定行标签
DataFrame 常用操作
常用属性和方法:
| 属性或方法 | 说明 |
|---|---|
df.shape |
查看 DataFrame 数据的形状 |
df.size |
查看 DataFrame 数据元素的总个数 |
df.ndim |
查看 DataFrame 数据的维度 |
len(df) |
获取 DataFrame 数据的行数 |
df.index |
获取 DataFrame 数据的行标签 |
df.columns |
获取 DataFrame 数据的列标签 |
df.dtypes |
查看 DataFrame 每列数据元素的类型 |
df.info() |
查看 DataFrame 每列的结构 |
df.head(n) |
获取 DataFrame 的前 n 行数据,n 默认为 5 |
df.tail(n) |
获取 DataFrame 的后 n 行数据,n 默认为 5 |
常用统计方法:
| 方法 | 说明 |
|---|---|
s.max() |
计算 DataFrame 数据中每列元素的最大值 |
s.min() |
计算 DataFrame 数据中每列元素的最小值 |
s.count() |
统计 DataFrame 数据中每列非空(NaN)元素的个数 |
s.describe() |
显示 DataFrame 数据中每列元素的各种统计值 |
bool 索引
DataFrame 支持 bool 索引,可以从 DataFrame 获取 bool 索引为 True 的对应行的数据。
DataFrame 运算
| 情况 | 说明 |
|---|---|
DataFrame 和 数值型数据运算 |
DataFrame 中的每个元素和数值型数据逐一运算, 返回新的 DataFrame |
DataFrame 和 另一 DataFrame 运算 |
两个 DataFrame 中相同行标签和列标签的元素分 别进行运算,若不存在相同的行标签或列标签, 计算后的结果为 NaN,最终返回新的 DataFrame |
行标签和列表签操作
加载数据后,指定某列数据作为行标签
加载数据文件时,如果不指定行标签,Pandas会自动加上从0开始的行标签;
可以通过df.set_index(‘列名’)的方法重新将指定的列数据设置为行标签
加载数据时,指定某列数据作为行标签
加载数据文件的时候,可以通过通过 index_col 参数,指定使用某一列数据作为行标签,index_col 参数可以指定列名或列位置
加载数据后,修改行标签和列标签
| 方式 | 说明 |
|---|---|
df.rename(index={'原行标签名': '新行标签名', ...}, columns={'原列标签名': '新列标签名', ...}) |
修改指定的行标签和列标签,rename修改后返回新的 DataFrame |
df.index = ['新行标签名1', '新行标签名2', ...] df.columns = ['新列标签名1', '新列标签名2', …] |
修改行标签和列标签,直接对原 DataFrame 进行修改 |
CodeDemo
1 |
Series方法(备查):
| 方法 | 说明 |
|---|---|
| append | 连接两个或多个Series |
| corr | 计算与另一个Series的相关系数 |
| cov | 计算与另一个Series的协方差 |
| describe | 计算常见统计量 |
| drop_duplicates | 返回去重之后的Series |
| equals | 判断两个Series是否相同 |
| get_values | 获取Series的值,作用与values属性相同 |
| hist | 绘制直方图 |
| isin | Series中是否包含某些值 |
| min | 返回最小值 |
| max | 返回最大值 |
| mean | 返回算术平均值 |
| median | 返回中位数 |
| mode | 返回众数 |
| quantile | 返回指定位置的分位数 |
| replace | 用指定值代替Series中的值 |
| sample | 返回Series的随机采样值 |
| sort_values | 对值进行排序 |
| to_frame | 把Series转换为DataFrame |
| unique | 去重返回数组 |
To be continued!
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.


