Pandas是一个强大的Python数据分析工具库,主要用于数据处理和分析。它提供了丰富的数据结构和功能,用于管理数值表格和时间序列数据。Pandas这个名字来源于“panel data”,这是计量经济学中用于描述数据集的一个术语。在数据操作、可视化和构建机器学习模型等方面,Pandas都是一个不可或缺的工具。Pandas包含两种主要的数据结构:Series和DataFrame。
要安装Pandas,可以使用以下命令在conda命令提示符下进行:
(base)$ source virtualenv_name/bin/activate(virtualenv_name) $ pip install pandas
一旦Pandas成功安装在系统中,可以通过以下方式简单地导入Pandas:
import pandas as pd
在这里,'pd'是Pandas的别名,这样就可以简称Pandas为'pd'而不是'pandas'。
以下是如何创建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中对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的形状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中提取特定列或多列的示例代码:
# 提取特定列作为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')