首页 python 正文
  • 本文约2362字,阅读需12分钟
  • 78
  • 0

用Python玩转Excel的五大功能!

摘要

在日常的数据处理工作中,Excel无疑是一个强大的工具。然而,当数据量较大或需要自动化处理时,Python凭借其强大的库支持,如pandas和openpyxl,能够更高效地处理Excel文件。本文将介绍Python中常用的五种Excel操作并额外添加两个实用功能,帮助你提升数据处理和文件美化能力。 一、读写Excel数据 为了演示方便,我们先生成一...

在日常的数据处理工作中,Excel无疑是一个强大的工具。然而,当数据量较大或需要自动化处理时,Python凭借其强大的库支持,如pandas和openpyxl,能够更高效地处理Excel文件。本文将介绍Python中常用的五种Excel操作**,**并额外添加两个实用功能,帮助你提升数据处理和文件美化能力。

一、读写Excel数据

为了演示方便,我们先生成一张Excel表:

import pandas as pd

# 创建一个DataFrame
data = {
    'Name': ['John', 'Anna', 'Peter', 'Linda'],
    'Age': [28, 34, 29, 32]
}
df = pd.DataFrame(data)

# 写入Excel文件
df.to_excel('output.xlsx', index=False)

# 读取Excel文件
df = pd.read_excel('output.xlsx', sheet_name='Sheet1')
print(df)

我们生产了一个dataframe数据表,利用to_excel函数将这个表保存到本地路径,保存为'output.xlsx'。然后再用read_excel函数将这个Excel表读取进来,数据如下:
用Python玩转Excel的五大功能!

现在,这些数据已经被保存到output.xlsx这个Excel表格中,接下来我们对这份数据进行后续操作。

二、修改Excel文件

现在我们将第一个人“John”的年龄改为30岁:

# 读取Excel文件
df = pd.read_excel('output.xlsx')

# 修改数据
df.loc[0, 'Age'] = 30  # 将第一行的Age改为30

# 写入Excel文件
df.to_excel('modified.xlsx', index=False)

我们先把刚才保存好的output.xlsx读取进来,修改第一个人的年龄为30岁,然后再保存为modified.xlsx。
用Python玩转Excel的五大功能!

可以看到,当前路径下有两张Excel表格。我们打开modified.xlsx看看:
用Python玩转Excel的五大功能!
可以看到John的年龄被修改为30岁了。

三、添加和删除行列

接下来,我们在modified.xlsx表格的基础上做一些添加和删除的操作

● 新增一个人的信息;

● 添加一列“Pet”,给这几位靓仔添加一些宠物;

● 为了保护个人隐私,把City这一列删除。

如下:

# 读取Excel文件
df = pd.read_excel('modified.xlsx')

# 添加行
df.loc[4, :] = ['Bob', 45, 'Osaka', 'Dancer']
# 添加列
df['Pet'] = ['Cat', 'Lion', 'Dog', 'Tiger', 'Monkey']
# 删除列
df.drop('City', axis=1, inplace=True)

# 写入Excel文件
df.to_excel('modified2.xlsx', index=False)

我们首先利用df.loc定位到最后一行,新增Bob的相关信息,然后添加Pet这一列的信息,删除Age这一列,最后保存为modified2.xlsx:

用Python玩转Excel的五大功能!

可以看到,Bob的信息被添加进去了,而且City也被删除了,此外,每位靓仔都拥有了一个宠物!

四、筛选和排序数据

接下来,我们把表格中年龄大于30岁的人筛选出来,保存到另一张Excel表中:

# 读取Excel文件
df = pd.read_excel('modified2.xlsx')

# 筛选Age大于30的数据
filtered_df = df[df['Age'] > 30]
# 按Age列排序
sorted_df = df.sort_values(by='Age')

# 写入Excel文件
df.to_excel('modified3.xlsx', index=False)

首先依然是读取Excel表格,然后利用dataframe的筛选语句,筛选出Age这一列大于30的人,再用sort_values函数进行排序。注意,sort_values函数默认为升序排列,如果想改为降序排列,需要设定参数ascending=False。现在新生成的modified3.xlsx表格如下:
用Python玩转Excel的五大功能!

五、实现Excel的VLOOKUP

最后我们来点复杂的操作,实现Excel的王牌函数:**VLOOKUP!**VLOOKUP函数本质上是把两种表格按照某列关键字进行横向拼接,现在我们再生成一张新表:

用Python玩转Excel的五大功能!

没错,就是刚才我们删除的City……这张新表命名为city.xlsx。现在我们要以Name这一列作为关键字,把modified3.xlsx与city.xlsx这两张表进行横向拼接:

# VLOOLUP函数
df1 = pd.read_excel('modified3.xlsx')
df2 = pd.read_excel('city.xlsx')
df_new = pd.merge(df1, df2, on='Name', how='left')
df_new.to_excel('last.xlsx')
print(df_new)

这段代码的关键点在于pd.merge函数。该函数的主要参数如下:

● 前两个参数的参与拼接的表格,df1是左表,df2是右表;

● on参数用于指定关键字,一般只用一个关键字;

● how参数用于设定合并方式,可以设定为'left', 'right', 'inner'或'outer'。这里我们设定为'left',意思是以左表df1作为标准进行合并。左表是读取的modified3.xlsx, 这张表里只有年龄大于30岁的人。

最终生成的last.xlsx表格如下:
用Python玩转Excel的五大功能!

任务完成!通过本文,你学习了如何使用Python进行常用的Excel操作。这些操作能够帮助你更高效地处理大量数据,提升工作效率。掌握这些技能后,你可以进一步探索python办公自动化的其他功能,以应对更复杂的数据处理需求。

标签:Excel

扫描二维码,在手机上阅读
    评论