这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战 Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
安装Pandas
从PyPi安装:
pip install Pandas
Pandas适用场景
Python在数据处理和准备方面一直做得很好,但在数据分析和建模方面就没那么好了。Pandas帮助填补了这一空白,使您能够在Python中执行整个数据分析工作流程,而不必切换到更特定于领域的语言,如R。
Pandas 适用于处理与Excel表类似的二维表格数据
Pandas的数据结构
Pandas 的主要数据结构是 Series(一维数据,类似Python中的数组)与 DataFrame(二维数据,类似excel表)。
DataFrame是Pandas中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。
Series是一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series对象。
| 维数 | 名称 | 描述 |
|---|---|---|
| 1 | Series | 带标签的数据类型相同的数组 |
| 2 | DataFrame | 带标签的大小可变的不同数据类型的表格 |
Series
Series是带标签的一维数组。标签统称为索引。
创建Series的方法
pd.Series(data, index=index) data可以是字典、数组、字面量。
当data为字典时pd.Series的创建方法:
>>>data = {"name": "ridingroad", "age": 21}
>>>pd.Series(data)
name ridingroad
age 21
dtype: object
当data为数组时pd.Series的创建方法:
>>>data = [1,2,3,4]
>>>pd.Series(data)
0 1
1 2
2 3
3 4
dtype: int64
当data为字面量时pd.Series的创建方法:
>>>data = 5
>>>pd.Series(data)
0 5
dtype: int64
当data为字面量时pd.Series的创建方法(Series按索引(轴标签重复该字面量)):
>>>pd.Series(data, index=['a', 'b', 'c'])
a 5
b 5
c 5
dtype: int64
Series的操作
Series的操作方法有以下几种:
- 按索引取值
- 按标签取值
- Series.get(key)
- data + data
- data[data > data.median()]
下面的例子构造了1234的数组,然后分别赋予索引名字为ABCD
>>>data = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
>>>data
a 1
b 2
c 3
d 4
dtype: int64
下面的例子按照索引号进行取值:
按索引取值:data[0]表示取第一号元素;data[2]表示取第三号元素;
>>>data[0]
1
>>>data[2]
3
下面的例子按照标签进行取值: 按标签取值:data['a']表示取索引名字为a的元素;data['b']表示取索引名字为b的元素;
>>>data['a']
1
>>>'a' in data
True
也可以类似和Python那样用.get(key)的方法取值: Series.get(key) 当key不存在,返回None
>>>data.get('5')
支持大多数Numpy的数组的方法
>>>data + data
a 2
b 4
c 6
d 8
dtype: int64
支持大多数Numpy的数组的方法
data[data > data.median()]:表示取大于平均值的数据
>>>data[data > data.median()]
c 3
d 4
dtype: int64
DataFrame
在生成DataFrame的时候可以指定列标签(columns)和行索引(idnex)。 用字典生成DataFrame:
>>>pd.DataFrame({"0": [1, 2, 3, 4], "1": [5, 6, 7, 8]})
指定行索引
>>>pd.DataFrame({"0": [1, 2, 3, 4], "1": [5, 6, 7, 8]}, index=['first', 'second', 'third', 'fourth'])
DataFrame.index和DataFrame.columns用来分别访问DataFrame的行和列的标签。
>>>data.index
Index(['first', 'second', 'third', 'fourth'], dtype='object')
>>>data.columns
Index(['0', '1'], dtype='object')