用Python玩转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表读取进来,数据如下:
现在,这些数据已经被保存到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办公自动化的其他功能,以应对更复杂的数据处理需求。