Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据) Series: 类似于一维数组或列表,是由一组数据以及与之相关的数据标签(索引)构成。Series 可以看作是 DataFrame 中的一列,也可以是单独存在的一维数据结构。 DataFrame: 类似于一个二维表格,它是 Pandas 中最重要的数据结构。DataFrame 可以看作是由多个 Series 按列排列构成的表格,它既有行索引也有列索引,因此可以方便地进行行列选择、过滤、合并等操作。
切片
loc方法是通过行、列的名称或者标签来寻找我们需要的值。
# 读取第1行到第3行,第B列到第D列这个区域内的值
data4 = data.loc[ 1:3, "B":"D"]
iloc方法是通过索引行、列的索引位置[index, columns]来寻找值
# 按index和columns进行切片操作
# 读取第2、3行,第3、4列
data1 = data.iloc[1:3, 2:4]
读取文件:CSV, json, txt, excel, xlsx
| 函数 | 说明 | | — | — | | pd.read_csv(filename) | 读取 CSV 文件; | | pd.read_excel(filename) | 读取 Excel 文件; | | pd.read_sql(query, connection_object) | 从 SQL 数据库读取数据; | | pd.read_json(json_string) | 从 JSON 字符串中读取数据; | | pd.read_html(url) | 从 HTML 页面中读取数据。 |
dropna()删除包含空字段的行
Pandas 清洗重复数据
如果我们要清洗重复数据,可以使用 duplicated() 和 drop_duplicates() 方法。
Pandas 清洗错误数据
数据错误也是很常见的情况,我们可以对错误的数据进行替换或移除。
Pandas 清洗格式错误数据
数据格式错误的单元格会使数据分析变得困难,甚至不可能。 我们可以通过包含空单元格的行,或者将列中的所有单元格转换为相同格式的数据。
常见函数
| 函数 | 说明 | | — | — | | df.head(n) | 显示前 n 行数据; | | df.tail(n) | 显示后 n 行数据; | | df.info() | 显示数据的信息,包括列名、数据类型、缺失值等; | | df.describe() | 显示数据的基本统计信息,包括均值、方差、最大值、最小值等; | | df.shape | 显示数据的行数和列数。 |
| 函数 | 说明 |
|---|---|
| df.dropna() | 删除包含缺失值的行或列; |
| df.fillna(value) | 将缺失值替换为指定的值; |
| df.replace(old_value, new_value) | 将指定值替换为新值; |
| df.duplicated() | 检查是否有重复的数据; |
| df.drop_duplicates() | 删除重复的数据。 |
| 函数 | 说明 |
|---|---|
| df[column_name] | 选择指定的列; |
| df.loc[row_index, column_name] | 通过标签选择数据; |
| df.iloc[row_index, column_index] | 通过位置选择数据; |
| df.ix[row_index, column_name] | 通过标签或位置选择数据; |
| df.filter(items=[column_name1, column_name2]) | 选择指定的列; |
| df.filter(regex=’regex’) | 选择列名匹配正则表达式的列; |
| df.sample(n) | 随机选择 n 行数据。 |
| 函数 | 说明 |
|---|---|
| df.sort_values(column_name) | 按照指定列的值排序; |
| df.sort_values([column_name1, column_name2], ascending=[True, False]) | 按照多个列的值排序; |
| df.sort_index() | 按照索引排序。 |
| 函数 | 说明 |
|---|---|
| pd.concat([df1, df2]) | 将多个数据框按照行或列进行合并; |
| pd.merge(df1, df2, on=column_name) | 按照指定列将两个数据框进行合并。 |