读取数据
序号 | 函数 | 说明 |
---|
1 | pd.read_csv(filename) | 读取 CSV 文件; |
2 | pd.read_excel(filename) | 读取 Excel 文件; |
3 | pd.read_sql(query, connection_object) | 从 SQL 数据库读取数据; |
4 | pd.read_json(json_string) | 从 JSON 字符串中读取数据; |
5 | pd.read_html(url) | 从 HTML 页面中读取数据。 |
import pandas as pd
# 从 CSV 文件中读取数据
df = pd.read_csv('data.csv')
# 从 Excel 文件中读取数据
df = pd.read_excel('data.xlsx')
# 从 SQL 数据库中读取数据
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql('SELECT * FROM table_name', conn)
# 从 JSON 字符串中读取数据
json_string = '{"name": "John", "age": 30, "city": "New York"}'
df = pd.read_json(json_string)
# 从 HTML 页面中读取数据
url = 'https://www.runoob.com'
dfs = pd.read_html(url)
df = dfs[0] # 选择第一个数据框
查看数据
序号 | 函数 | 说明 |
---|
1 | df.head(n) | 显示前 n 行数据; |
2 | df.tail(n) | 显示后 n 行数据; |
3 | df.info() | 显示数据的信息,包括列名、数据类型、缺失值等; |
4 | df.describe() | 显示数据的基本统计信息,包括均值、方差、最大值、最小值等; |
5 | df.shape | 显示数据的行数和列数。 |
# 显示前五行数据
df.head()
# 显示后五行数据
df.tail()
# 显示数据信息
df.info()
# 显示基本统计信息
df.describe()
# 显示数据的行数和列数
df.shape
数据清洗
序号 | 函数 | 说明 |
---|
1 | df.dropna() | 删除包含缺失值的行或列; |
2 | df.fillna(value) | 将缺失值替换为指定的值; |
3 | df.replace(old_value, new_value) | 将指定值替换为新值; |
4 | df.duplicated() | 检查是否有重复的数据; |
5 | df.drop_duplicates() | 删除重复的数据。 |
# 删除包含缺失值的行或列
df.dropna()
# 将缺失值替换为指定的值
df.fillna(0)
# 将指定值替换为新值
df.replace('old_value', 'new_value')
# 检查是否有重复的数据
df.duplicated()
# 删除重复的数据
df.drop_duplicates()
数据选择和切片
序号 | 函数 | 说明 |
---|
1 | df[column_name] | 选择指定的列; |
2 | df.loc[row_index, column_name] | 通过标签选择数据; |
3 | df.iloc[row_index, column_index] | 通过位置选择数据; |
4 | df.ix[row_index, column_name] | 通过标签或位置选择数据; |
5 | df.filter(items=[column_name1, column_name2]) | 选择指定的列; |
6 | df.filter(regex='regex') | 选择列名匹配正则表达式的列; |
7 | df.sample(n) | 随机选择 n 行数据。 |
# 选择指定的列
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')
# 随机选择 n 行数据
df.sample(n=5)
数据排序
序号 | 函数 | 说明 |
---|
1 | df.sort_values(column_name) | 按照指定列的值排序; |
2 | df.sort_values([column_name1, column_name2], ascending=[True, False]) | 按照多个列的值排序; |
3 | df.sort_index() | 按照索引排序。 |
# 按照指定列的值排序
df.sort_values('column_name')
# 按照多个列的值排序
df.sort_values(['column_name1', 'column_name2'], ascending=[True, False])
# 按照索引排序
df.sort_index()
数据分组和聚合
序号 | 函数 | 说明 |
---|
1 | df.groupby(column_name) | 按照指定列进行分组; |
2 | df.aggregate(function_name) | 对分组后的数据进行聚合操作; |
3 | df.pivot_table(values, index, columns, aggfunc) | 生成透视表。 |
# 按照指定列进行分组
df.groupby('column_name')
# 对分组后的数据进行聚合操作
df.aggregate('function_name')
# 生成透视表
df.pivot_table(values='value', index='index_column', columns='column_name', aggfunc='function_name')
数据合并
函数 | 说明 |
---|
pd.concat([df1, df2]) | 将多个数据框按照行或列进行合并; |
pd.merge(df1, df2, on=column_name) | 按照指定列将两个数据框进行合并。 |
# 将多个数据框按照行或列进行合并
df = pd.concat([df1, df2])
# 按照指定列将两个数据框进行合并
df = pd.merge(df1, df2, on='column_name')
数据选择和过滤
函数 | 说明 |
---|
df.loc[row_indexer, column_indexer] | 按标签选择行和列。 |
df.iloc[row_indexer, column_indexer] | 按位置选择行和列。 |
df[df['column_name'] > value] | 选择列中满足条件的行。 |
df.query('column_name > value') | 使用字符串表达式选择列中满足条件的行。 |
数据统计和描述
函数 | 说明 |
---|
df.describe() | 计算基本统计信息,如均值、标准差、最小值、最大值等。 |
df.mean() | 计算每列的平均值。 |
df.median() | 计算每列的中位数。 |
df.mode() | 计算每列的众数。 |
df.count() | 计算每列非缺失值的数量。 |