PHP前端开发

熊猫备忘单

百变鹏仔 4天前 #Python
文章标签 熊猫

熊猫综合指南:终极备忘单

pandas 是一个基于 python 构建的开源数据操作和分析库。它提供了易于使用的数据结构,例如 dataframe 和 series,有助于各种数据分析任务的数据处理。它广泛用于处理结构化数据、数据清理和准备,这是数据科学工作流程中的关键步骤。无论是时间序列数据、异构数据,还是 csv、excel、sql 数据库或 json 格式的数据,pandas 都提供了强大的工具,使处理这些数据变得更加容易。


1.进口熊猫

在使用 pandas 的任何功能之前,您需要导入库。它通常被导入为 pd 以保持语法简洁。

import pandas as pd

2.熊猫数据结构

系列

series 是一个一维标记数组,能够保存任何数据类型(整数、字符串、浮点数等)。它可以从列表、numpy 数组或字典创建。

# create a pandas series from a lists = pd.series([1, 2, 3, 4])

预期输出:

0    11    22    33    4dtype: int64

数据框

dataframe 是一种二维标记数据结构,类似于数据库中的表格或 excel 电子表格。它由行和列组成。每列可以有不同的数据类型。

# create a dataframe from a dictionarydata = {'name': ['alice', 'bob', 'charlie'], 'age': [24, 27, 22], 'city': ['new york', 'london', 'berlin']}df = pd.dataframe(data)

预期输出:

      name  age      city0    alice   24  new york1      bob   27    london2  charlie   22    berlin

3.创建数据框和系列

来自字典

data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}df = pd.dataframe(data)

来自列表的列表

data = [[1, 2, 3], [4, 5, 6]]df = pd.dataframe(data, columns=["a", "b", "c"])

预期输出:

   a  b  c0  1  2  31  4  5  6

4.检查数据帧

pandas 提供了多种方法来检查和获取有关数据的信息。

# inspecting the dataframeprint(df.head())print(df.tail())print(df.info())print(df.describe())

预期输出:

   a  b  c0  1  2  31  4  5  6   a  b  c0  1  2  31  4  5  6<class 'pandas.core.frame.dataframe'>rangeindex: 2 entries, 0 to 1data columns (total 3 columns): #   column  non-null count  dtype---  ------  --------------  ----- 0   a       2 non-null      int64 1   b       2 non-null      int64 2   c       2 non-null      int64dtypes: int64(3)memory usage: 128.0 bytes       a    b    ccount  2.0  2.0  2.0mean   2.5  3.5  4.5std    2.1  2.1  2.1min    1.0  2.0  3.025%    1.5  2.5  3.550%    2.0  3.0  4.075%    2.5  3.5  4.5max    4.0  5.0  6.0

5.索引、切片和子集数据

访问列

您可以使用点表示法或使用方括号索引来访问列。

# dot notationprint(df.a)# bracket notationprint(df["b"])

通过索引访问行

您可以使用 .iloc[] 进行基于整数位置的索引,使用 .loc[] 进行基于标签的索引。

# using iloc (index-based)print(df.iloc[0])  # access first row# using loc (label-based)print(df.loc[0])  # access first row using label

切片数据

您可以对 dataframe 进行切片来获取数据子集。您可以对行或列进行切片。

# select specific rows and columnssubset = df.loc[0:1, ["a", "c"]]

预期输出:

   a  c0  1  31  4  6

6.修改数据框

添加列

您可以通过分配值直接向 dataframe 添加列。

df['d'] = [7, 8]  # adding a new column

修改列值

您可以通过访问列并分配新值来修改列的值。

df['a'] = df['a'] * 2  # modify the 'a' column

删除列或行

您可以使用 drop() 函数删除行或列。

df = df.drop(columns=['d'])  # dropping a columndf = df.drop(index=1)  # dropping a row by index

7.处理缺失数据

处理丢失的数据是一项关键任务。 pandas 提供了几个函数来处理丢失的数据。

df = df.fillna(0)  # fill missing data with 0df = df.dropna()  # drop rows with any missing values

8.数据聚合和分组

分组依据

groupby() 函数用于将数据分组,应用函数,然后组合结果。

# grouping by a column and calculating the sumgrouped = df.groupby('city').sum()

聚合函数

您可以应用各种聚合函数,如 sum()、mean()、min()、max() 等

# aggregating data using meandf.groupby('city').mean()

9.排序和排名

对数据进行排序

您可以使用 sort_values() 函数按一列或多列对 dataframe 进行排序。

# sorting by a column in ascending orderdf_sorted = df.sort_values(by='age')# sorting by multiple columnsdf_sorted = df.sort_values(by=['age', 'name'], ascending=[true, false])

排名

您可以使用rank()对dataframe中的值进行排名。

df['rank'] = df['age'].rank()

10。合并、连接和连接 dataframe

合并数据帧

您可以基于公共列或索引合并两个 dataframe。

df1 = pd.dataframe({'a': ['a0', 'a1', 'a2'], 'b': ['b0', 'b1', 'b2']})df2 = pd.dataframe({'a': ['a0', 'a1', 'a2'], 'c': ['c0', 'c1', 'c2']})merged_df = pd.merge(df1, df2, on='a')

连接数据帧

您可以使用 concat() 沿行或列连接 dataframe。

df1 = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])df2 = pd.DataFrame([[5, 6], [7, 8]], columns=['A', 'B'])concat_df = pd.concat([df1, df2], axis=0)

结论

pandas 是一种用于数据操作的多功能工具,从导入和清理数据到执行复杂的操作。此备忘单提供了一些最常见的 pandas 功能的快速概述,帮助您提高数据分析工作流程的效率。