当需要进行大量数据的整理、分析、处理等操作时,Excel可能并不是最好的选择,因为它的操作速度以及对大数据处理的能力较弱,此时,我们可以利用Python的pandas库来处理excel表格中的数据。
下面是一个完整的实例教程:
安装及导入需要的库
首先,我们需要用pip
命令安装需要的库:pandas
, xlrd
, openpyxl
!pip install pandas xlrd openpyxl
导入已经安装的库:
import pandas as pd
读取Excel文件
我们需要读取一个Excel文件中的数据,可以使用read_excel()
函数来实现。这个函数需要两个必要的参数,一个是文件名,另一个是需要读取数据的工作表名。如果不指定工作表名,则默认读取第一个工作表。
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
这行代码会将’data.xlsx'
文件中名为’Sheet1'
的工作表中的数据读入pandas的DataFrame格式中,存储于变量df
中。可以使用head()
函数来查看前5行的数据。
df.head()
数据处理
接下来,我们可以对读取的数据进行处理。例如,我们可以计算出一列数据的均值、中位数、最大值和最小值,并输出。
mean = df['数学成绩'].mean()
median = df['数学成绩'].median()
max_score = df['数学成绩'].max()
min_score = df['数学成绩'].min()
print('数学成绩的均值为:{:.2f}'.format(mean))
print('数学成绩的中位数为:{}'.format(median))
print('数学成绩的最高分为:{}'.format(max_score))
print('数学成绩的最低分为:{}'.format(min_score))
执行完这段代码后,就能够输出数学成绩一列的均值、中位数、最大值和最小值。
下面是另一个示例,我们要将某一列数据按照自定义的规则进行修改。
需要修改的规则是,如果某个学生的语文成绩大于等于80,将该成绩修改为“优秀”,否则将成绩修改为“一般”。
def modify_grade(score):
if score >= 80:
return '优秀'
else:
return '一般'
df['语文成绩'] = df['语文成绩'].apply(modify_grade)
这段代码首先定义了一个modify_grade()
函数,用来修改单个成绩,然后使用了apply()
函数来对整个’语文成绩’列的数据进行修改。
将修改后的数据保存到新的Excel文件中
在完成数据的处理和修改后,我们可以将修改后的数据保存到新的Excel文件中。使用to_excel()
函数来实现。to_excel()
函数需要指定文件名以及写入的工作表名。
df.to_excel('new_data.xlsx', sheet_name='Sheet1', index=False)
这行代码会将修改后的数据保存到’new_data.xlsx'
文件中,工作表的名称为“Sheet1”。index=False
表示不保存DataFrame的行索引。
这样,我们就完成了对Excel文件的数据读取、处理和保存。
完整示例代码如下:
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 计算均值、中位数、最大值和最小值
mean = df['数学成绩'].mean()
median = df['数学成绩'].median()
max_score = df['数学成绩'].max()
min_score = df['数学成绩'].min()
print('数学成绩的均值为:{:.2f}'.format(mean))
print('数学成绩的中位数为:{}'.format(median))
print('数学成绩的最高分为:{}'.format(max_score))
print('数学成绩的最低分为:{}'.format(min_score))
# 将语文成绩按照自定义规则进行修改
def modify_grade(score):
if score >= 80:
return '优秀'
else:
return '一般'
df['语文成绩'] = df['语文成绩'].apply(modify_grade)
# 将修改后的数据保存到新的Excel文件中
df.to_excel('new_data.xlsx', sheet_name='Sheet1', index=False)