文章目录
2、DataFrame
DataFrame是一个【表格型】的数据结构,可以看做是【由Series组成的字典】(共用同一个索引)。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。
- 行索引:index
- 列索引:columns
- 值:values(numpy的二维数组)
我们的 训练集(一些二维的数据)都是二维的,那么Series满足不了这个条件,xy轴,轴上的一点(0,0)
1)DataFrame的创建
最常用的方法是传递一个字典来创建。DataFrame以字典的键作为每一【列】的名称,以字典的值(一个数组)作为每一列。
此外,DataFrame会自动加上每一行的索引(和Series一样)。
同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN。
data = pd.DataFrame(data=np.random.randint(1,20,(5,4))
,index=['红浪漫','海螺哥','澡王','大哥','三点哥']
,columns=list('ABCD'))
DataFrame属性:values、columns、index、shape、ndim、dtypes
data.ndim,data.shape
#(2, (5, 4))
data.dtypes
#A int32
#B int32
#C int32
#D int32
#dtype: object
#行索引
data.index
#Index(['红浪漫', '海螺哥', '澡王', '大哥', '三点哥'], dtype='object')
#列索引
data.columns
#Index(['A', 'B', 'C', 'D'], dtype='object')
data.values
#array([[12, 15, 17, 8],
# [10, 14, 4, 2],
# [12, 19, 13, 6],
# [16, 12, 5, 8],
# [18, 14, 3, 16]])
#检查数据大小
data.info()
#<class 'pandas.core.frame.DataFrame'>
#Index: 5 entries, 红浪漫 to 三点哥
#Data columns (total 4 columns):
#A 5 non-null int32
#B 5 non-null int32
#C 5 non-null int32
#D 5 non-null int32
#dtypes: int32(4)
#memory usage: 280.0+ bytes
2)DataFrame的索引
(1) 对列进行索引
- 通过类似字典的方式
- 通过属性的方式
可以将DataFrame的列获取为一个Series。返回的Series拥有原DataFrame相同的索引,且name属性也已经设置好了,就是相应的列名。
data
data['A']
#红浪漫 12
#海螺哥 10
#澡王 12