Pandas 是 Python 中最受欢迎的数据处理库之一,其名字源自于“Panel Data”(面板数据)的缩写。它提供了三种主要的数据结构:Series , DataFrame , Panel(在新版本已经被弃用)
类似于一维数组,由一组数据和与之相关的索引组成。每个元素都有对应的标签,可以通过标签进行索引和操作。
使用列表或数组创建Series:可以通过传递Python列表或NumPy数组来创建Series
- import pandas as pd
- s = pd.Series([1, 2, 3, 4, 5])
使用字典创建Series:字典的键将成为Series的索引
- data = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
- s = pd.Series(data)
- # 使用位置索引:可以使用整数位置来访问Series中的元素
- s[0] # 访问第一个元素
-
-
- # 使用自定义索引:可以使用自定义的标签索引访问元素
- s['a'] # 访问标签为'a'的元素
| values | 返回Series的数据部分(一个NumPy数组) |
| index | 返回Series的索引部分(一个Index对象) |
| dtype | 返回Series中的数据类型 |
- # 算术操作:支持基本的算术运算,如加法、减法、乘法和除法
- s1 + s2
- s1 * 2
-
- # 索引与切片:可以使用位置索引或自定义索引进行索引和切片操作
- s[1:3] # 选择第2到第3个元素
- s['a':'c'] # 选择标签从'a'到'c'的元素
当对两个Series进行操作时,Pandas会根据索引自动对齐数据
- s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
- s2 = pd.Series([4, 5, 6], index=['b', 'c', 'd'])
- result = s1 + s2
Pandas提供了多种方法处理缺失数据,如isnull()、fillna()等
可以使用apply()方法应用函数到Series的每个元素上
提供了一系列统计函数,如sum()、mean()、max()等,用于计算Series的统计信息
Series对象提供了plot()方法,可以直接绘制数据的图表
类似于电子表格或 SQL 数据库中的表格数据结构,由多个 Series 组成,每一列可以是不同的数据类型。DataFrame 提供了强大的数据操作和处理功能,适用于各种复杂的数据分析任务。
通过传递字典创建:可以使用字典来创建DataFrame,其中字典的键将成为DataFrame的列标签
- import pandas as pd
- data = {'Name': ['zzz', 'xxx', 'ddd'],
- 'Age': [25, 30, 35],
- 'City': ['New York', 'Los Angeles', 'Shanghai']}
- df = pd.DataFrame(data)
也可以通过读取外部数据创建:可以从文件(如CSV、Excel等)或数据库中读取数据创建DataFrame
- # shape:返回DataFrame的行数和列数
- df.shape
-
- # columns:返回DataFrame的列标签
- df.columns
-
- # index:返回DataFrame的行索引
- df.index
- # 使用列标签选择列:可以通过列标签直接选择DataFrame中的列
- df['Name']
-
-
- # 使用loc和iloc选择行和列
- df.loc[0] # 选择索引为0的行
- df.loc[:, 'Age'] # 选择名为'Age'的列的所有行
- df.iloc[0] # 使用整数位置选择行
-
- # 使用布尔索引进行条件选择
- df[df['Age'] > 25]
- # 添加列
- df['Gender'] = ['Female', 'Male', 'Male']
-
- # 删除列
- df.drop('City', axis=1, inplace=True)
-
- # 行列转置
- df.T
- # 按列或行的值进行排序
- df.sort_values(by='Age')
处理缺失数据:可以使用dropna()删除包含缺失值的行或列,或使用fillna()填充缺失值。
处理重复数据:使用drop_duplicates()删除重复行
使用groupby()方法对数据进行分组并应用聚合函数
使用concat()、merge()或join()方法将多个DataFrame合并成一个
使用pivot_table()方法创建数据透视表
使用plot()方法进行数据可视化,例如绘制柱状图、折线图等