Python技术迷

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 格式写入文件。

专属福利 

👉点击领取:最全Python资料合集

创建测试对象

用于测试代码段。

  • 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():返回每列的标准差。
Image
 1
Image
热门推荐

Image