pandas 是 Python 中一个非常强大的数据处理包,几乎所有的数据预处理都可以通过它来完成。
pandas 中有两种类型的数据结构,分别是 DataFrame 和 Series。Series是一个一维的类似的数组对象,包含一个数组的数据(任何NumPy的数据类型)和一个与数组关联的数据标签,被叫做 索引 。Series 有点类似于字典,它的每一个索引(index)唯一对应着一个值(value)
1 | # 创建 Series 数据 |
DataFrame 表示一个表格,类似电子表格的数据结构,包含一个经过排序的列表集,它们每一个都可以有不同的类型值(数字,字符串,布尔等等)。
1 | data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], |
二、连接 MySQL
连接 MySQL 的前提是 MySQL 已经安装,并且 Python 中也安装了 MySQLdb 包,满足两个条件之后,便可以通过编写好的 sql 语句直接从数据库中读取数据了,并且读取的数据还可以保存为 DataFrame 格式。
1 | db_conn = MySQLdb.connect('localhost', 'root', '312624', 'baoliao', charset="utf8") |
三、统计各列下缺失值数
1 | DataFrame.isnull().sum() |
四、统计各列下每个值的频数
1 | DataFrame.value_counts() |
五、四舍五入
1 | round(value, decimals) |
对某个特征值下的全部数据进行四舍五入操作,
1 | data[''] = [round(value, 2) for value in data['']] |
六、排序
1 | # 对单列数据进行升序排序 |
七、处理非连续值
非连续值可以将取值进行唯一编码
1 | cat = pd.Categorical(["1", "2", "c", "d"]).codes |
八、处理缺失值
pandas.to_numeric(arg, errors=’raise’, downcast=None)
errors 的参数设置有三种情形:
- 如果是 ‘raise’,无效的数据将以例外的形式提示
- 如果是 ‘coerce’,无效的数据将设置为 NaN
- 如果是 ‘ignore’,无效的解析会被 pandas 直接忽略并返回到输入中
downcast 的参数设置也有三种情形:
- ‘integer’ or ‘signed’: smallest signed int dtype (min.: np.int8)
- ‘unsigned’: smallest unsigned int dtype (min.: np.uint8)
- ‘float’: smallest float dtype (min.: np.float32)
1 | import pandas as pd |
对列中的缺失数据值填充
1 | # 零值填充 |
九、转换数据类型
在 pandas 中将 object 类型数据转换成 float 型,通过convert_objects(convert_numeric=True)
便可实现,参考链接:stackoverflow: Convert pandas.Series from dtype object to float, and errors to nans
1 | In [2]: a = pd.Series([1,2,3,4,'.']) |
十、列的操作:增删改
1 | # 插入列 |
十一、去重复值
1 | df.drop_duplicates(['col_name']) |