《scikit-learn机器学习常用算法原理及编程实战》—2.4 Pandas简介
2.4 Pandas简介
Pandas是一个强大的时间序列数据处理工具包,最初开发的目的是为了分析财经数据,现在已经广泛应用在Python数据分析领域中。本节通过简单的介绍,让读者熟悉简单的Pandas概念及操作。
2.4.1 基本数据结构
Pandas最基础的数据结构是Series,用它来表达一行数据,可以理解为一维的数组。比如下面的代码,创建了一个包含6个数据的一维数组。
# Series 对象可以理解为一维数组
s = pd.Series([4, 2, 5, 0, 6, 3])
s
其输出为:
0 4
1 2
2 5
3 0
4 6
5 3
dtype: int64
另外一个关键的数据结构为DataFrame,它表示的是二维数组。下面的代码为创建一个DataFrame对象。
# DataFrame 是二维数组对象
df = pd.DataFrame(np.random.randn(6,4), columns=list('ABCD'))
df
输出为:
A B C D
0 0.968762 1.501239 -0.284952 -0.456468
1 1.413471 -0.309746 0.407559 1.536548
2 -0.399065 -0.040439 1.339359 -0.318217
3 -0.152205 -0.121888 0.841658 -1.493958
4 0.248414 -0.676985 1.326487 -0.455541
5 0.906221 -2.158694 -0.201354 -0.024769
DataFrame 里的数据实际是用Numpy的array对象来保存的,读者可以输入df.values来查看原始数据。DataFrame对象的每一行和列都是一个Series对象。我们可以使用行索引来访问一行数据,可以用列名称来索引一列数据。
[IN]: df.iloc[0]
[OUT]:
A 0.968762
B 1.501239
C -0.284952
D -0.456468
Name: 0, dtype: float64
[IN]: df.A
[OUT]:
0 0.968762
1 1.413471
2 -0.399065
3 -0.152205
4 0.248414
5 0.906221
Name: A, dtype: float64
[IN]:
print("Row data type: {}".format(type(df.iloc[0])))
print("Column data type: {}".format(type(df.A)))
[OUT]:
Row data type: <class 'pandas.core.series.Series'>
Column data type: <class 'pandas.core.series.Series'>
Pandas提供了简洁的数据访问功能。DataFrame.shape可以查看数据的维度信息:
[IN]: df.shape
[OUT]: (6, 4)
通过DataFrame.head()和DataFrame.tail()方法可以访问前n行和后n行的数据:
[IN]: df.head(3)
[OUT]:
A B C D
0 0.968762 1.501239 -0.284952 -0.456468
1 1.413471 -0.309746 0.407559 1.536548
2 -0.399065 -0.040439 1.339359 -0.318217
[IN]: df.tail(2)
[OUT]:
A B C D
4 0.248414 -0.676985 1.326487 -0.455541
5 0.906221 -2.158694 -0.201354 -0.024769
通过DataFrame.index和DataFrame.columns属性,可以访问数据的行索引和列索引信息。
[IN]: df.index
[OUT]: RangeIndex(start=0, stop=6, step=1)
[IN]: df.columns
[OUT]: Index([u'A', u'B', u'C', u'D'], dtype='object')
通过DataFrame.describe()方法,可以算出简单的数据统计信息。
[IN]: df.describe()
[OUT]:
A B C D
count 6.000000 6.000000 6.000000 6.000000
mean 0.497600 -0.301086 0.571459 -0.202068
std 0.709385 1.178177 0.719762 0.986474
min -0.399065 -2.158694 -0.284952 -1.493958
25% -0.052050 -0.585176 -0.049126 -0.456236
50% 0.577317 -0.215817 0.624608 -0.386879
75% 0.953127 -0.060802 1.205280 -0.098131
max 1.413471 1.501239 1.339359 1.536548
从输出可以看出,describe()计算出每列的元素个数、平均值、标准差、最小值、最大值及几种中位数的值。
- 点赞
- 收藏
- 关注作者
评论(0)