- 机器学习:Python实践
- 魏贞原
- 562字
- 2020-12-22 16:30:43
4.4 Pandas速成
Pandas提供了用于机器学习的复杂数据类型:矢量运算方法和数据分析方法。Pandas也提供了多种数据结构。
Series:一维数组,与NumPy中的一维Array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效地使用内存,提高运算效率。
Time- Series:以时间为索引的Series。
DataFrame:二维的表格型数据结构。很多功能与R语言中的data.frame类似。可以将DataFrame理解为Series的容器。
Panel:三维数组,可以理解为DataFrame的容器。
在这里我们需要深入理解Series和DataFrame这两种数据类型,来帮助我们实践机器学习。
4.4.1 Series
Series虽然与NumPy的一维数组类似,但是在建立Series时可以设定index,也可以像访问NumPy数组或字典一样来访问Series元素。代码如下:
import numpy as np import pandas as pd myarray=np.array([1, 2, 3]) index=['a', 'b', 'c'] myseries=pd.Series(myarray, index=index) print(myseries) print('Series中的第一个元素:') print(myseries[0]) print('Series中的c index元素:') print(myseries['c'])
执行结果如下:
a 1 b 2 c 3 dtype: int64 Series中的第一个元素: 1 Series中的c index元素: 3
4.4.2 DataFrame
DataFrame是一个可以指定行和列标签的二维数组。数据可以通过指定列名来访问特定列的数据。代码如下:
import numpy as np import pandas as pd myarray=np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]]) rowindex=['row1', 'row2', 'row3'] colname=['col1', 'col2', 'col3'] mydataframe=pd.DataFrame(data=myarray, index=rowindex, columns=colname) print(mydataframe) print('访问col3的数据:') print(mydataframe['col3'])
执行结果如下:
col1 col2 col3 row1 1 2 3 row2 2 3 4 row3 3 4 5 访问col3的数据: row1 3 row2 4 row3 5 Name: col3, dtype: int64
Pandas是一个功能强大的对数据进行切片的工具,更多的内容请查阅Pandas API(http://pandas.pydata.org/pandas-docs/stable/)。