Pandas入门 笔记(二)
3.DataFrame 对象
3.1图解DataFrame对象
图 3.1 DataFrame结构
DataFrame是一个二维表数据结构,即由行列数据组成的表格。DataFrame既有行索引也有列索引,它可以看作是由Series对象组成的字典,不过这些Series对象公用一个索引。
# 实例:
import pandas as pd
data = [[101,102,103],[104,105,106],[107,108,109]]
row = [0,1,2]
col = ['语文','数学','英语']
df = pd.DataFrame(data = data , index = row , columns = col)
print(df)
# 遍历DataFrame数据的每一列
for cols in df.columns:
series = df[cols]
print(series)
#输出结果:
语文 数学 英语
0 101 102 103
1 104 105 106
2 107 108 109
0 101
1 104
2 107
Name: 语文, dtype: int64
0 102
1 105
2 108
Name: 数学, dtype: int64
0 103
1 106
2 109
Name: 英语, dtype: int64
3.2 创建一个DataFrame对象
创建DataFrame主要使用Pandas模块的DataFrame类,语法如下:
pandas.DataFrame( data , index , columns , dtype , copy )
参数说明:
- data:表示数据,可以是ndarray数组、series对象、列表、字典等。
- index:表示行标签(索引)。
- columns:列标签(索引)。
- dtype:每一列数据的数据类型。
- copy:用于复制数据。
- 返回值:DataFrame。
表3.2 数据类型对应表
Pandas数据类型 | Python数据类型 |
---|---|
object | str |
int64 | int |
float64 | float |
bool | bool |
datetime64 | datetime64[ns] |
timedelta[ns] | NA |
category | NA |
3.2.1 通过列表创建DataFrame对象
import pandas as pd
data = [[101,102,103],[104,105,106],[107,108,109]]
col = ['语文','数学','英语']
df = pd.DataFrame(data = data , columns = col)
print(df)
# 运行结果:
语文 数学 英语
0 101 102 103
1 104 105 106
2 107 108 109
3.2.2 通过字典创建DataFrame对象
通过字典创建DtaFrame需要注意:
字典中的value值只能是一维数组或者单个简单数据类型。如果是数组,则要求所有数组长度一致;如果是单个数据,则每行都需要添加相同数据。
import pandas as pd
# 解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width',True)
data = [[101,102,103],[104,105,106],[107,108,109]]
col = ['语文','数学','英语']
df = pd.DataFrame({
'语文':[101,102,103],
'数学':[104,105,106],
'英语':[107,108,109],
'班级':'高一1班'
},index = [0,1,2])
print(df)
# 运行结果:
语文 数学 英语 班级
0 101 104 107 高一1班
1 102 105 108 高一1班
2 103 106 109 高一1班
值得注意的是,上述的“班级”列的value值是单个数据,所以每一行都添加了相同的数据“高一1班”。
3.3 DataFrame 的重要属性和函数
表3.3 重要属性及描述
属性 | 描述 | 举例 |
---|---|---|
values | 查看所有元素的值 | df.values |
dtypes | 查看所有元素的类型 | df.dtypes |
index | 查看所有行名、重命名行名 | df.index , df.index=[1,2,3] |
columns | 查看所有列名、重命名列名 | df.columns ,df.columns[‘生物’,‘化学’,‘物理’] |
T | 行列数据转换 | df.T |
head | 查看前n条数据,默认5条 | df.head() , df.head(8) |
tail | 查看后n条数据,默认5条 | df.tail() , df.tail(8) |
shape | 查看行数和列数,[0]表示行;[1]表示列 | df.shape[0] , df.shape[1] |
info | 查看索引,数据类型和内存信息 | df.info |
表3.4 重要函数及描述
函数 | 描述 | 举例 |
---|---|---|
describe | 查看每列的统计汇总信息,DtaFrame类型 | df.describe() |
count | 返回每一列中的非空值得个数 | df.count |
sum | 返回每一列的和,无法计算时返回空值 | df.sum() |
max | 返回每一列的最大值 | df.max() |
min | 返回每一列的最小值 | df.min |
argmax | 返回某一列的(Series对象)最大值所在的自动索引位置 | df[‘销量’].argmax() |
argmin | 返回某一列的(Series对象)最小值所在的自动索引位置 | df[‘销量’].argmin() |
idxmax | 返回最大值所在的自定义索引位置 | df.idxmax() |
idxmin | 返回最小值所在的自定义索引位置 | df.idxmin() |
mean | 返回每一列的平均值 | df.mean() |
median | 返回每一列的中位数 | df.median() |
var | 返回每一列的方差 | df.var() |
std | 返回每一列的标准差 | df.std() |
isnull | 检查df中的空值,空值为True;否则为False,返回布尔数组类型 | df.isnull() |
notnull | 检查df中的空值,非空值为True;否则为False,返回布尔数组类型 | df.notnull() |