Python学习之路(excel和csv文件操作)
当利用python处理实验数据时,往往会因为不熟悉excel的操作导致bug频出,以下是一些python操作excel的总结*
当使用Python进行Excel文件处理和数据分析时,我们可以使用许多库和工具来完成各种操作。以下是对Excel文件常见操作的概括总结,并附上相应的代码示例:
针对excel的操作:
1. 导入所需库:
import pandas as pd
import openpyxl
import xlrd
2. 读取Excel文件:
# 读取整个工作表
df = pd.read_excel('文件路径.xlsx')
**# 读取指定工作表**
df = pd.read_excel('文件路径.xlsx', sheet_name='工作表名称')
# 读取指定范围的数据
df = pd.read_excel('文件路径.xlsx', sheet_name='工作表名称', skiprows=1, nrows=10)
3. 写入Excel文件:
# 创建一个空的Excel文件
df = pd.DataFrame()
df.to_excel('文件路径.xlsx', index=False)
# 将数据写入指定工作表
df.to_excel('文件路径.xlsx', sheet_name='工作表名称', index=False)
4. 读取特定单元格的值:
# 使用openpyxl库读取特定单元格的值
workbook = openpyxl.load_workbook('文件路径.xlsx')
worksheet = workbook['工作表名称']
value = worksheet['A1'].value
5. 写入特定单元格的值:
# 使用openpyxl库写入特定单元格的值
workbook = openpyxl.load_workbook('文件路径.xlsx')
worksheet = workbook['工作表名称']
worksheet['A1'] = '数值'
workbook.save('文件路径.xlsx')
6. 操作工作表:
# 使用pandas库获取所有工作表名称
workbook = pd.ExcelFile('文件路径.xlsx')
sheet_names = workbook.sheet_names
# 使用openpyxl库创建新工作表
workbook = openpyxl.Workbook()
worksheet = workbook.create_sheet(title='新工作表')
workbook.save('文件路径.xlsx')
# 使用openpyxl库复制工作表
workbook = openpyxl.load_workbook('文件路径.xlsx')
worksheet = workbook['原工作表']
new_worksheet = workbook.copy_worksheet(worksheet)
new_worksheet.title = '复制工作表'
workbook.save('文件路径.xlsx')
7. 进行数据筛选和操作:
# 使用pandas库根据条件筛选数据
filtered_data = df[df['列名'] > 10]
# 使用pandas库对数据进行排序
sorted_data = df.sort_values(by='列名', ascending=False)
# 使用pandas库进行数据聚合和汇总
grouped_data = df.groupby('列名').sum()
# 使用pandas库进行数据透视表操作
pivot_table = pd.pivot_table(df, values='数值', index='行名', columns='列名', aggfunc='sum')
8. 进行数据可视化:
# 使用matplotlib库创建柱状图
import matplotlib.pyplot as plt
df.plot(kind='bar', x='列名', y='数值')
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('图表标题')
plt.show()
代码汇总:
import pandas as pd
import openpyxl
import xlrd
import matplotlib.pyplot as plt
# 读取Excel文件
df = pd.read_excel('文件路径.xlsx') # 读取整个工作表
df = pd.read_excel('文件路径.xlsx', sheet_name='工作表名称') # 读取指定工作表
df = pd.read_excel('文件路径.xlsx', sheet_name='工作表名称', skiprows=1, nrows=10) # 读取指定范围的数据
# 写入Excel文件
df.to_excel('文件路径.xlsx', index=False) # 创建一个空的Excel文件
df.to_excel('文件路径.xlsx', sheet_name='工作表名称', index=False) # 将数据写入指定工作表
# 读取特定单元格的值
workbook = openpyxl.load_workbook('文件路径.xlsx')
worksheet = workbook['工作表名称']
value = worksheet['A1'].value
# 写入特定单元格的值
workbook = openpyxl.load_workbook('文件路径.xlsx')
worksheet = workbook['工作表名称']
worksheet['A1'] = '数值'
workbook.save('文件路径.xlsx')
# 操作工作表
workbook = pd.ExcelFile('文件路径.xlsx')
sheet_names = workbook.sheet_names # 获取所有工作表名称
workbook = openpyxl.Workbook()
worksheet = workbook.create_sheet(title='新工作表') # 创建新工作表
workbook.save('文件路径.xlsx')
workbook = openpyxl.load_workbook('文件路径.xlsx')
worksheet = workbook['原工作表']
new_worksheet = workbook.copy_worksheet(worksheet) # 复制工作表
new_worksheet.title = '复制工作表'
workbook.save('文件路径.xlsx')
# 进行数据筛选和操作
filtered_data = df[df['列名'] > 10] # 根据条件筛选数据
sorted_data = df.sort_values(by='列名', ascending=False) # 对数据进行排序
grouped_data = df.groupby('列名').sum() # 进行数据聚合和汇总
pivot_table = pd.pivot_table(df, values='数值', index='行名', columns='列名', aggfunc='sum') # 数据透视表操作
# 进行数据可视化
df.plot(kind='bar', x='列名', y='数值') # 创建柱状图
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('图表标题')
plt.show()
针对csv文件的操作:
当使用Python进行CSV文件处理和数据分析时,我们可以使用以下操作。以下是对Python中对CSV文件进行的常见操作的概括总结,并附上相应的代码示例:
1. 导入所需库:
import pandas as pd
import csv
2. 读取CSV文件:
df = pd.read_csv('文件路径.csv') # 读取整个CSV文件
df = pd.read_csv('文件路径.csv', nrows=10) # 读取前10行数据
df = pd.read_csv('文件路径.csv', usecols=['列名1', '列名2']) # 读取指定列的数据
3. 写入CSV文件:
df.to_csv('文件路径.csv', index=False) # 将数据写入CSV文件
4. 逐行读取CSV文件:
with open('文件路径.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
5. 逐行写入CSV文件:
data = [['数据1', '数据2'], ['数据3', '数据4']]
with open('文件路径.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
6. 数据筛选和操作:
filtered_data = df[df['列名'] > 10] # 根据条件筛选数据
sorted_data = df.sort_values(by='列名', ascending=False) # 对数据进行排序
grouped_data = df.groupby('列名').sum() # 进行数据聚合和汇总
7. 数据可视化:
import matplotlib.pyplot as plt
df.plot(kind='bar', x='列名', y='数值') # 创建柱状图
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('图表标题')
plt.show()
这只是对Python中处理CSV文件的一些常见操作进行了概括总结。实际应用中,还有更多高级的功能和技术可用于数据分析和处理。
代码汇总:
import pandas as pd
import csv
# 读取CSV文件
df = pd.read_csv('文件路径.csv') # 读取整个CSV文件
df = pd.read_csv('文件路径.csv', nrows=10) # 读取前10行数据
df = pd.read_csv('文件路径.csv', usecols=['列名1', '列名2']) # 读取指定列的数据
# 写入CSV文件
df.to_csv('文件路径.csv', index=False) # 将数据写入CSV文件
# 逐行读取CSV文件
with open('文件路径.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
# 逐行写入CSV文件
data = [['数据1', '数据2'], ['数据3', '数据4']]
with open('文件路径.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
# 数据筛选和操作
filtered_data = df[df['列名'] > 10] # 根据条件筛选数据
sorted_data = df.sort_values(by='列名', ascending=False) # 对数据进行排序
grouped_data = df.groupby('列名').sum() # 进行数据聚合和汇总
# 数据可视化
import matplotlib.pyplot as plt
df.plot(kind='bar', x='列名', y='数值') # 创建柱状图
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('图表标题')
plt.show()
补充:csv文件和excel文件的区别
在Python中,CSV文件和Excel文件有一些区别,包括文件格式、数据结构和功能:
1. 文件格式:
- CSV文件(逗号分隔值)是一种纯文本格式,使用逗号将数据字段分隔开。它通常以
.csv
为文件扩展名。 - Excel文件是一种二进制文件格式,使用
.xls
或.xlsx
作为文件扩展名。
2. 数据结构:
- CSV文件中的数据是以纯文本形式存储的,每行表示一个记录,使用逗号或其他分隔符将数据字段分隔开。
- Excel文件中的数据是以工作表(worksheet)的形式组织的,每个工作表包含多行和多列的单元格。
3. 功能:
- CSV文件是一种简单的数据存储格式,适合存储结构化的表格数据。它可以用于存储和传输数据,但通常不包含复杂的格式和公式。
- Excel文件是一种功能强大的电子表格软件,具有丰富的数据处理、计算和可视化功能。它可以进行数据分析、建模、图表绘制等复杂的操作。
4. 导入和导出:
- 在Python中,读取和写入CSV文件通常使用
csv
模块或Pandas库中的read_csv()
和to_csv()
函数。 - 对于Excel文件,可以使用Pandas库中的
read_excel()
和to_excel()
函数,或使用专门处理Excel文件的库,如openpyxl和xlrd。
总的来说,CSV文件适合存储简单的表格数据,易于读写和处理。Excel文件则提供了更多的功能和灵活性,适用于复杂的数据分析和处理任务。选择使用CSV文件还是Excel文件取决于具体的需求和数据结构的复杂性。