Pandas 教程-Pandas 简便手册
整理:python架构师
Pandas 可以被视为数据科学中最重要的 Python 包。它提供了许多处理数据的函数,使数据分析变得更加简便。其快速、灵活和表达力强大的数据结构旨在进行现实世界的数据分析。
Pandas 简便手册是一个快速指南,介绍了你在使用 Python 进行数据处理时需要了解的 Pandas 基础知识。如果你想以 Pandas 开始数据科学之旅,可以将它用作处理数据的便捷参考。
这份简便手册将引导你了解 Pandas 库的基础知识,从数据结构到输入/输出、选择、排序和排名等方面。
关键词和导入
在简便手册中,我们使用以下缩写:
df:指代任何 Pandas DataFrame 对象。
s:指代任何 Pandas Series 对象。你可以使用以下导入开始:
导入数据
pd.read_csv(filename):从 CSV 文件中读取数据。
pd.read_table(filename):用于从分隔文本文件中读取数据。
pd.read_excel(filename):从 Excel 文件中读取数据。
pd.read_sql(query, connection_object):从 SQL 表/数据库中读取数据。
pd.read_json(json_string):从 JSON 格式字符串、URL 或文件中读取数据。
pd.read_html(url):解析 HTML URL、字符串或文件,并提取表格到数据框列表。
pd.read_clipboard():获取剪贴板内容并传递给 read_table() 函数。
pd.DataFrame(dict):从字典创建,字典的键为列名,值为数据列表。
导出数据
df.to_csv(filename):写入 CSV 文件。
df.to_excel(filename):写入 Excel 文件。
df.to_sql(table_name, connection_object):写入 SQL 表。
df.to_json(filename):以 JSON 格式写入文件。
专属福利
创建测试对象
用于测试代码段。
pd.DataFrame(np.random.rand(7, 18)):指代 18 列 7 行的随机浮点数。
pd.Series(my_list):从可迭代对象 my_list 创建 Series。
df.index = pd.date_range('1940/1/20', periods=df.shape[0]):添加日期索引。
查看/检查数据
df.head(n):返回数据框的前 n 行。
df.tail(n):返回数据框的最后 n 行。
df.shape:返回行数和列数。
df.info():返回索引、数据类型和内存信息。
s.value_counts(dropna=False):查看唯一值并计数。
df.apply(pd.Series.value_counts):对所有列的唯一值进行计数。
选择
df[col1]:返回带有标签 col 的列作为 Series。
df[[col1, col2]]:返回列作为新的数据框。
s.iloc[0]:按位置选择。
s.loc['index_one']:按索引选择。
df.iloc[0, :]:返回第一行。
df.iloc[0, 0]:返回第一列的第一个元素。
数据清理
df.columns = ['a', 'b', 'c']:重命名列。
pd.isnull():检查空值并返回布尔数组。
pd.notnull():是 pd.isnull() 的反义词。
df.dropna():删除包含空值的所有行。
df.dropna(axis=1):删除包含空值的所有列。
df.dropna(axis=1, thresh=n):删除具有少于 n 个非空值的所有行。
df.fillna(x):用 x 替换所有空值。
s.fillna(s.mean()):用均值替换所有空值(均值可以替换为统计模块中的几乎任何函数)。
s.astype(float):将系列的数据类型转换为浮点数。
s.replace(1, 'one'):将所有等于 1 的值替换为 'one'。
s.replace([1, 3], ['one', 'three']):将所有 1 替换为 'one',将所有 3 替换为 'three'。
df.rename(columns=lambda x: x+1):重命名大量列。
df.rename(columns={'old_name': 'new_name'}):进行选择性重命名。
df.set_index('column_one'):用于更改索引。
df.rename(index=lambda x: x+1):重命名大量索引。
过滤、排序和分组
df[df[col] > 0.5]:返回列 col 大于 0.5 的行。
df[(df[col] > 0.5) & (df[col] < 0.7)]:返回 0.7 > col > 0.5 的行。
df.sort_values(col1):按升序对 col1 排序值。
df.sort_values(col2, ascending=False):按降序对 col2 排序值。
df.sort_values([col1, col2], ascending=[True, False]):按升序对 col1 排序值,按降序对 col2 排序值。
df.groupby(col1):返回一个根据某一列的值进行分组的对象。
df.groupby([col1, col2]):返回一个根据多列的值进行分组的对象。
df.groupby(col1)[col2]):返回按 col1 中的值分组的 col2 的平均值。
df.pivot_table(index=col1, values=[col2, col3], aggfunc=mean):创建一个按 col1 分组并计算 col2 和 col3 平均值的数据透视表。
df.groupby(col1).agg(np.mean):计算每个唯一 col1 组的所有列的平均值。
df.apply(np.mean):对每一列应用函数 np.mean()。
nf.apply(np.max, axis=1):对每一行应用函数 np.max()。
连接/组合
df1.append(df2):将 df1 的行添加到 df2 的末尾(列应相同)。
pd.concat([df1, df2], axis=1):将 df1 的列添加到 df2 的末尾(行应相同)。
df1.join(df2, on=col1, how='inner'):使用 SQL 风格将 df1 中的列与 df2 中具有相同值的列连接,'how' 可以是 'left'、'right'、'outer' 或 'inner'。
统计
统计函数可以应用于 Series,具体如下:
df.describe():返回数值列的摘要统计。
df.mean():返回所有列的平均值。
df.corr():返回数据框中列之间的相关性。
df.count():返回每个数据框列中的非空值计数。
df.max():返回每列的最大值。
df.min():返回每列的最小值。
df.median():返回每列的中位数。
df.std():返回每列的标准差。
热门推荐