Python学习之路(excel和csv文件操作)

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文件取决于具体的需求和数据结构的复杂性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值