熊猫综合指南:终极备忘单
pandas 是一个基于 构建的开源数据操作和分析库。它提供了易于使用的数据结构,例如 dataframe 和 series,有助于各种数据分析任务的数据处理。它广泛用于处理结构化数据、数据清理和准备,这是数据科学工作流程中的关键步骤。无论是时间序列数据、异构数据,还是 csv、excel、sql 数据库或 json 格式的数据,pandas 都提供了强大的工具,使处理这些数据变得更加容易。
1.进口熊猫
在使用 pandas 的任何功能之前,您需要导入库。它通常被导入为 pd 以保持语法简洁。
import pandas as pd
2.熊猫数据结构
系列
series 是一个一维标记数组,能够保存任何数据类型(整数、字符串、浮点数等)。它可以从列表、numpy 数组或字典创建。
# create a pandas series from a list s = pd.series([1, 2, 3, 4])
预期输出:
0 1 1 2 2 3 3 4 dtype: int64
数据框
dataframe 是一种二维标记数据结构,类似于数据库中的表格或 excel 电子表格。它由行和列组成。每列可以有不同的数据类型。
# create a dataframe from a dictionary data = {'name': ['alice', 'bob', 'charlie'], 'age': [24, 27, 22], 'city': ['new york', 'london', 'berlin']} df = pd.dataframe(data)
预期输出:
name age city 0 alice 24 new york 1 bob 27 london 2 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 c 0 1 2 3 1 4 5 6
4.检查数据帧
pandas 提供了多种方法来检查和获取有关数据的信息。
- df.head(n) – 返回前 n 行。
- df.tail(n) – 返回最后 n 行。
- df.info() – 提供有关 dataframe 的摘要信息。
- df.describe() – 生成 dataframe 的描述性统计数据。
# inspecting the dataframe print(df.head()) print(df.tail()) print(df.info()) print(df.describe())
预期输出:
a b c 0 1 2 3 1 4 5 6 a b c 0 1 2 3 1 4 5 6 <class> rangeindex: 2 entries, 0 to 1 data 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 int64 dtypes: int64(3) memory usage: 128.0 bytes a b c count 2.0 2.0 2.0 mean 2.5 3.5 4.5 std 2.1 2.1 2.1 min 1.0 2.0 3.0 25% 1.5 2.5 3.5 50% 2.0 3.0 4.0 75% 2.5 3.5 4.5 max 4.0 5.0 6.0 </class>
5.索引、切片和子集数据
访问列
您可以使用点表示法或使用方括号索引来访问列。
# dot notation print(df.a) # bracket notation print(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 columns subset = df.loc[0:1, ["a", "c"]]
预期输出:
a c 0 1 3 1 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 column df = df.drop(index=1) # dropping a row by index
7.处理缺失数据
处理丢失的数据是一项关键任务。 pandas 提供了几个函数来处理丢失的数据。
- df.isnull() – 检测缺失值(返回布尔值的 dataframe)。
- df.notnull() – 检测非缺失值(返回布尔值的 dataframe)。
- df.fillna(value) – 用指定值填充缺失值。
- df.dropna() – 删除缺少值的行。
df = df.fillna(0) # fill missing data with 0 df = df.dropna() # drop rows with any missing values
8.数据聚合和分组
分组依据
groupby() 函数用于将数据分组,应用函数,然后组合结果。
# grouping by a column and calculating the sum grouped = df.groupby('city').sum()
您可以应用各种聚合函数,如 sum()、mean()、min()、max() 等
# aggregating data using mean df.groupby('city').mean()
9.排序和排名
对数据进行排序
您可以使用 sort_values() 函数按一列或多列对 dataframe 进行排序。
# sorting by a column in ascending order df_sorted = df.sort_values(by='age') # sorting by multiple columns df_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 功能的快速概述,帮助您提高数据分析工作流程的效率。
以上就是熊猫备忘单的详细内容,更多请关注php中文网其它相关文章!