在日常的数据处理工作中,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表读取进来,数据如下:
现在,这些数据已经被保存到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。
可以看到,当前路径下有两张Excel表格。
我们打开modified.xlsx看看:
可以看到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:
可以看到,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表格如下:
五、实现Excel的VLOOKUP
最后我们来点复杂的操作,**实现Excel的王牌函数:**VLOOKUP!
VLOOKUP函数本质上是把两种表格按照某列关键字进行横向拼接,现在我们再生成一张新表:
没错,就是刚才我们删除的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办公自动化的其他功能,以应对更复杂的数据处理需求。