Python数据分析系列之Pandas常用操作第一篇

193 阅读3分钟

这是我参与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对象。

维数名称描述
1Series带标签的数据类型相同的数组
2DataFrame带标签的大小可变的不同数据类型的表格
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的操作方法有以下几种:

  1. 按索引取值
  2. 按标签取值
  3. Series.get(key)
  4. data + data
  5. 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')