Python Pandas数据分析实战:从入门到精通
Python Pandas数据分析实战:从入门到精通
本教程将使用一个示例数据集,演示如何使用Python Pandas库进行数据分析。
1. 数据加载与初步探索
首先,我们需要加载数据。这里假设数据存储在一个名为'data.xlsx'的Excel文件中。python# 导入pandas库import pandas as pd
读取Excel文件到DataFramedf = pd.read_excel('data.xlsx')
我们可以使用head()方法查看数据的前几行,使用info()方法查看数据的基本信息,例如列名、数据类型和非空值数量。python# 查看数据的前5行print(df.head())
查看数据的基本信息print(df.info())
打印后4行数据的信息python# 打印后4行数据的信息tail4 = df.tail(4)print('后4行数据:')print(tail4)
数值型数据的主要统计信息python# 数值型数据的主要统计信息df_num = df.describe()df_obj = df.describe(include='object')print('数值型数据的主要统计信息:')print(df_num)print('类别型数据的主要统计信息:')print(df_obj)
pythonprint('-'*80)
2. 数据选择与过滤
Pandas提供了多种方法来选择和过滤数据。
筛选技术部门员工的所有信息python# 筛选技术部门员工的所有信息tech_df = df[df['部门'] == '技术']print('技术部门员工的所有信:')print(tech_df)
筛选2019年入职员工,展示其所有信息python# 筛选2019年入职员工,展示其所有信息df_2019 = df[df['入职年份'] == 2019]print('2019年入职员工信息:')print(df_2019)
筛选薪资在15000-20000之间 (两端都包含) python#筛选薪资在15000-20000之间 (两端都包含) sal_df = df[(df['薪资'] >= 15000) & (df['薪资'] <= 20000)]print('薪资在15000-20000之间的员工信息:')print(sal_df)pythonprint('-'*80)
3. 计算
Pandas允许我们对数据进行各种计算。
根据入职时间计算员工的工作年限(当前年份-入职年份),并设为新的一列。python# 根据入职时间计算员工的工作年限(当前年份-入职年份),并设为新的一列。df['work_years'] = pd.datetime.now().year - df['入职年份']print('添加工作年限列后的数据:')print(df)
对入职年限高于5年的员工,加薪10%python# 对入职年限高于5年的员工,加薪10%df.loc[df['work_years'] > 5, '薪资'] = df['薪资'] * 1.1print('特定员工加薪10%后的数据:')print(df)pythonprint('-'*80)
4. 数据统计与分组
Pandas提供了强大的分组功能。
按部门分组,平均薪资和年龄python#按部门分组,平均薪资和年龄mean_sal_age = df.groupby('部门').agg({'薪资':'mean', '年龄':'mean'})print('各部门的平均薪资和年龄:')print(mean_sal_age)
pythonprint('-'*80)
5. 问题回答
现在让我们尝试回答一些关于数据的问题。
工作年限小于2年的员工中,年薪最低的员工属于哪个部门python# 工作年限小于2年的员工中,年薪最低的员工属于哪个部门min_sal_dept = df[df['work_years'] < 2]['部门'].iloc[df[df['work_years'] < 2]['薪资'].idxmin()]print(f'工作年限小于4年的员工中年薪最低员工所在部门:{min_sal_dept}')
年薪最高的员工比最低的员工年长几岁python#年薪最高的员工比最低的员工年长几岁age_diff = df[df['薪资'] == df['薪资'].max()]['年龄'].values[0] - df[df['薪资'] == df['薪资'].min()]['年龄'].values[0]print(f'年薪最高的员工比最低的员工年长{age_diff}岁')
原文地址: https://www.cveoy.top/t/topic/yEO 著作权归作者所有。请勿转载和采集!