Python自动化办公必学!一个pandas库搞定所有Excel数据处理!

文摘   2024-11-13 12:05   上海  

哈喽,大家好!我是风哥,一个资深Python工程师。今天要给大家介绍一个超强的数据处理库——pandas!

还在为Excel数据处理烦恼吗?还在苦苦编写VBA宏吗?来试试pandas吧!它能让你的Excel数据处理效率提升10倍!

1. 基础操作

环境准备

1# pip install pandas openpyxl
2import pandas as pd
3import numpy as np

读取Excel文件

1# 读取Excel
2df = pd.read_excel('data.xlsx')
3
4# 读取指定sheet
5df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
6
7# 读取多个sheet
8all_sheets = pd.read_excel('data.xlsx', sheet_name=None)

保存Excel

1# 保存为Excel
2df.to_excel('output.xlsx', index=False)
3
4# 保存多个sheet
5with pd.ExcelWriter('output.xlsx'as writer:
6    df1.to_excel(writer, sheet_name='Sheet1')
7    df2.to_excel(writer, sheet_name='Sheet2')

2. 数据处理神器

数据筛选

1# 条件筛选
2df_filtered = df[df['年龄'] > 25]
3
4# 多条件筛选
5df_filtered = df[(df['年龄'] > 25) & (df['工资'] > 10000)]
6
7# 值筛选
8df_filtered = df[df['部门'].isin(['技术部''市场部'])]

数据统计

 1# 基础统计
2summary = df.describe()
3
4# 分组统计
5group_stats = df.groupby('部门')['工资'].agg(['mean''sum''count'])
6
7# 透视表
8pivot_table = pd.pivot_table(
9    df,
10    values='工资',
11    index='部门',
12    columns='职级',
13    aggfunc='mean'
14)

3. 数据清洗利器

缺失值处理

1# 检查缺失值
2missing_data = df.isnull().sum()
3
4# 填充缺失值
5df['工资'].fillna(df['工资'].mean(), inplace=True)
6
7# 删除缺失行
8df.dropna(inplace=True)

重复值处理

1# 检查重复值
2duplicates = df.duplicated().sum()
3
4# 删除重复行
5df.drop_duplicates(inplace=True)
6
7# 特定列去重
8df.drop_duplicates(subset=['员工编号'], keep='first', inplace=True)

4. 数据转换高手

数据类型转换

1# 转换数据类型
2df['入职日期'] = pd.to_datetime(df['入职日期'])
3df['工资'] = df['工资'].astype(float)
4
5# 时间格式化
6df['入职年份'] = df['入职日期'].dt.year
7df['入职月份'] = df['入职日期'].dt.month

数据重塑

1# 列重命名
2df.rename(columns={'name''姓名''age''年龄'}, inplace=True)
3
4# 行列转换
5df_melted = pd.melt(df, id_vars=['员工编号'], value_vars=['Q1''Q2''Q3''Q4'])

5. 实用案例

自动化报表生成

 1def generate_monthly_report(file_path):
2    # 读取数据
3    df = pd.read_excel(file_path)
4
5    # 数据处理
6    summary = pd.pivot_table(
7        df,
8        values='销售额',
9        index='部门',
10        columns='月份',
11        aggfunc='sum'
12    )
13
14    # 计算环比
15    summary['环比增长'] = summary['12月'] / summary['11月'] - 1
16
17    # 保存结果
18    with pd.ExcelWriter('月度报表.xlsx'as writer:
19        summary.to_excel(writer, sheet_name='汇总')
20        df.groupby('部门')['销售额'].sum().to_excel(writer, sheet_name='部门统计')

数据合并处理

 1def merge_excel_files(folder_path):
2    import os
3
4    # 获取所有Excel文件
5    all_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
6
7    # 合并数据
8    combined_df = pd.DataFrame()
9    for file in all_files:
10        df = pd.read_excel(os.path.join(folder_path, file))
11        combined_df = pd.concat([combined_df, df])
12
13    # 去重和排序
14    combined_df.drop_duplicates(inplace=True)
15    combined_df.sort_values('日期', inplace=True)
16
17    # 保存结果
18    combined_df.to_excel('合并结果.xlsx', index=False)

6. 高级技巧

数据分析

1# 相关性分析
2correlation = df.corr()
3
4# 描述性统计
5stats = df.describe(include='all')
6
7# 数据采样
8sample_df = df.sample(n=100)

自定义函数应用

1# 应用自定义函数
2def bonus_calc(salary):
3    return salary * 0.1 if salary < 10000 else salary * 0.2
4
5df['奖金'] = df['工资'].apply(bonus_calc)

实战小贴士:

  1. 大文件处理时使用chunksize参数分批读取

  2. 注意数据类型转换提高性能

  3. 善用索引加速查询

  4. 定期释放内存

掌握这些pandas技巧,Excel数据处理就再也不是难题!学会这些,你就是办公室效率担当!

下期预告:《Python自动化办公系列之PDF处理》,想学习的朋友记得关注!

我是风哥,让我们一起用Python提高工作效率!我们下期再见!

py学习基地ai
分享生活百态,情感故事,了解不一样的人生
 最新文章