Pandas数据操作与分析指南

Pandas是一个强大的Python数据分析工具库,主要用于数据处理和分析。它提供了丰富的数据结构和功能,用于管理数值表格和时间序列数据。Pandas这个名字来源于“panel data”,这是计量经济学中用于描述数据集的一个术语。在数据操作、可视化和构建机器学习模型等方面,Pandas都是一个不可或缺的工具。Pandas包含两种主要的数据结构:Series和DataFrame。

安装Pandas

要安装Pandas,可以使用以下命令在conda命令提示符下进行:

(base)$ source virtualenv_name/bin/activate(virtualenv_name) $ pip install pandas

Pandas快速入门

一旦Pandas成功安装在系统中,可以通过以下方式简单地导入Pandas:

import pandas as pd

在这里,'pd'是Pandas的别名,这样就可以简称Pandas为'pd'而不是'pandas'。

创建PandasSeries和DataFrame

以下是如何创建Pandas Series和DataFrame的示例:

# 创建一个Pandas Seriespd.Series([12, 13, 1, 3, 5])# 创建一个带有显式索引的Pandas Seriespd.Series([2, 4, 6], index=['ad', 'bd', 'cd']) # 创建一个Pandas DataFramepd.DataFrame({'name': ['Akash', 'Shivam', 'Neil', 'Manish'], 'age': [21, 23, 24, 28], 'occupation': ['data scientist', 'doctor', 'data analyst', 'engineer']})

Pandas中的排序操作

以下是如何在Pandas中对DataFrame进行排序的示例代码:

# 将指定列设置为DataFrame的索引df.set_index('col_name', inplace=True) # 根据索引对DataFrame进行排序df.sort_index(axis=0, ascending=False) # 根据列值对DataFrame进行排序df.sort_values(by='col_name', ascending=False)

DataFrame的检查与信息

以下是如何检查DataFrame的形状、查看顶部和底部行以及获取DataFrame的元数据信息的示例代码:

# 检查DataFrame的形状df.shape # 查看DataFrame的前n行df.head(n)# 默认显示前5行df.head() # 查看DataFrame的后n行df.tail(n)# 默认显示后5行df.tail() # 获取DataFrame的元数据信息df.info() # 获取DataFrame的统计信息df.describe() # 获取DataFrame列的内存使用情况df.memory_usage() # 获取DataFrame的列名df.columns # 获取DataFrame的值作为数组df.values

在Pandas中提取列

以下是如何在Pandas中提取特定列或多列的示例代码:

# 提取特定列作为Seriesdf['col_name']df.col_name # 同时提取多个列df[['col_1', 'col_2', 'col_3']]

基于索引的切片操作

以下是如何在Pandas中进行基于索引的切片操作的示例代码:

# 提取特定行和列的单个元素df.iloc[3, 5] # 第4行和第6列的单个元素 # 提取特定行的所有列df.iloc[5, :] # 第6行和所有列 # 提取多个特定行df.iloc[[2, 5, 7]] # 提取特定行范围df.iloc[2:8] # 提取特定列df.iloc[:, 2] # 提取特定列范围df.iloc[:, 1:3] # 提取特定行和列范围df.iloc[3:6, 1:3]

基于标签的切片操作

# 基于行标签和列标签提取单个元素df.loc[2, 'col_name'] # 行标签2和列'sales'的单个元素 # 提取具有标签5的单行df.loc[5] # 提取具有标签5的单行和所有列df.loc[5, :] # 提取具有标签列表的多行df.loc[[2, 5, 7]] # 提取具有标签范围的多行df.loc[2:8] # 提取具有标签的多行和列df.loc[[1, 2], 'col_1':'col_2']

基于条件的切片操作

# 提取列中值大于22的所有值df.loc[df.Age > 22] # 提取列中值等于22的所有行df.loc[(df.Age == 22), :] # 提取列中值不等于22的所有行df.loc[(df.Age != 22), :] # 多重条件提取df.loc[(df.Age > 21) & (df.Age < 23) & (df.University == 'MU'), :] # 提取列中值在列表中的所有行df.loc[df['University'].isin(['MU', 'IIT']), :] # 合并DataFrame或Series对象pd.merge(data_1, data_2, how='inner', on=['col_1', 'col_2']) # 沿指定轴连接pandas对象pd.concat([data_1, data_2], axis=0) # 沿另一轴连接两个DataFramepd.concat([data_1, data_2], axis=1) # 添加新列df['new_col'] = any_value # 通过现有列添加新列df['new_col'] = df['col_1'] / df['col_2'] # 按特定列对数据进行分组df.groupby(['col_1', 'col_2']) # 分组并聚合df.groupby(['col_1', 'col_2'])['col_3'].sum() # 对列应用函数df['col_1'].apply(lambda x: function(x)) # 创建类似电子表格的透视表df.pivot_table(values='aggregation_col', index='group_by_row', columns='group_by_col', aggfunc='mean')
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485