Pandas 速查表

2024 年 8 月 29 日 | 4 分钟阅读

Pandas 可以用作数据科学最重要的 Python 包。它有助于提供大量以更简单的方式处理数据的函数。它具有快速、灵活和富有表现力的数据结构,旨在进行现实世界的数据分析。

Pandas 备忘单是 Pandas 基础知识的快速指南,您需要开始使用 Python 处理数据。如果您想使用 Pandas 开始您的数据科学之旅,您可以将其用作方便的参考,以便轻松处理数据。

本备忘单将引导您了解 Pandas 库的基础知识,从数据结构到 I/O,选择、排序和排名等。

键和导入

我们在备忘单中使用以下速记

  • df: 指任何 Pandas DataFrame 对象。
  • s: 指任何 Pandas Series 对象。您可以使用以下导入来开始

导入数据

  • pd.read_csv(文件名) : 它从 CSV 文件中读取数据。
  • pd.read_table(文件名) : 它用于从分隔文本文件中读取数据。
  • pd.read_excel(文件名) : 它从 Excel 文件中读取数据。
  • pd.read_sql(查询,连接 _对象) : 它从 SQL 表/数据库中读取数据。
  • pd.read_json(json _字符串) : 它从 JSON 格式的字符串、URL 或文件中读取数据。
  • pd.read_html(url) : 它解析 HTML URL、字符串或文件,并将表提取到数据帧列表中。
  • pd.read_clipboard() : 它获取剪贴板的内容并将其传递给 read_table() 函数。
  • pd.DataFrame(dict) : 从 dict 中,用于列名的键,用于数据的列表值。

导出数据

  • df.to_csv(文件名): 它写入 CSV 文件。
  • df.to_excel(文件名): 它写入 Excel 文件。
  • df.to_sql(表名, 连接对象): 它写入 SQL 表。
  • df.to_json(文件名) : 它以 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): 它返回 DataFrame 的前 n 行。
  • df.tail(n): 它返回 DataFrame 的最后 n 行。
  • df.shape: 它返回行数和列数。
  • df.info(): 它返回索引、数据类型和内存信息。
  • s.value_counts(dropna=False): 它查看唯一值和计数。
  • df.apply(pd.Series.value_counts): 它指的是所有列的唯一值和计数。

选拔

  • df[col1]: 它将列作为 Series 返回。
  • df[[col1, col2]]: 它将列作为新的 DataFrame 返回。
  • 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): 它将 Series 的数据类型转换为 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): 为来自一列的值返回一个 groupby 对象。
  • df.groupby([col1,col2]) :返回来自多列的值的 groupby 对象。
  • df.groupby(col1)[col2]) :返回 col2 中值的平均值,按 col1 中的值分组。
  • 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 中的列,其中 col 的行具有相同的值,“how”可以是“left”、“right”、“outer”、“inner”。

统计量

统计函数可以应用于 Series,如下所示

  • df.describe(): 它返回数值列的汇总统计信息。
  • df.mean() : 它返回所有列的平均值。
  • df.corr(): 它返回数据框中各列之间的相关性。
  • df.count(): 它返回每个数据框列中所有非空值的计数。
  • df.max(): 它返回每个列中的最高值。
  • df.min(): 它返回每个列中的最低值。
  • df.median(): 它返回每个列的中间值。
  • df.std(): 它返回每个列的标准差。

下一主题Pandas 索引