Python表格存取方法:xlwt/xlrd、openpyxl与pandas对比
本文介绍Python中表格存取的方法,包括xlwt/xlrd、openpyxl和pandas库的使用。xlwt/xlrd适用于Excel文件,openpyxl支持.xlsx格式,pandas适合CSV文件处理。不同库原理相同,但写法有差异,建议无格式要求时存储为CSV文件。
Python表格存取的方法
在Python中,处理表格数据有多种库可供选择。常用的库包括xlwt/xlrd、openpyxl和pandas。这些库各有特点,适用于不同的场景。
xlwt/xlrd库
xlwt和xlrd库主要用于处理Excel文件。xlwt用于写入Excel文件,而xlrd用于读取Excel文件。这两个库的原理相同,但写法有所差别。
import xlwt
workbook = xlwt.Workbook(encoding='utf-8')
booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)
#存第一行cell(1,1)和cell(1,2)
booksheet.write(0,0,34)
booksheet.write(0,1,38)
#存第二行cell(2,1)和cell(2,2)
booksheet.write(1,0,36)
booksheet.write(1,1,39)
#存一行数据
rowdata = [43,56]
for i in range(len(rowdata)):
booksheet.write(2,i,rowdata[i])
workbook.save('test_xlwt.xls')
上述代码展示了如何使用xlwt库写入Excel文件。首先,创建一个工作簿,然后添加一个工作表。接着,通过write方法写入单元格数据。最后,保存工作簿。
import xlrd
workbook = xlrd.open_workbook('D:\\Py_exercise\\test_xlwt.xls')
print(workbook.sheet_names()) #查看所有sheet
booksheet = workbook.sheet_by_index(0) #用索引取第一个sheet
booksheet = workbook.sheet_by_name('Sheet 1') #或用名称取sheet
#读单元格数据
cell_11 = booksheet.cell_value(0,0)
cell_21 = booksheet.cell_value(1,0)
#读一行数据
row_3 = booksheet.row_values(2)
print(cell_11, cell_21, row_3)
>>>34.0 36.0 [43.0, 56.0]
上述代码展示了如何使用xlrd库读取Excel文件。首先,打开工作簿,然后获取工作表。接着,通过cell_value方法读取单元格数据,通过row_values方法读取一行数据。
openpyxl库
openpyxl库主要用于处理.xlsx格式的Excel文件。它支持写入和读取Excel文件,且写法与xlwt/xlrd有所不同。
from openpyxl import Workbook
workbook = Workbook()
booksheet = workbook.active #获取当前活跃的sheet,默认是第一个sheet
#存第一行单元格cell(1,1)
booksheet.cell(1,1).value = 6 #这个方法索引从1开始
booksheet.cell("B1").value = 7
#存一行数据
booksheet.append([11,87])
workbook.save("test_openpyxl.xlsx")
上述代码展示了如何使用openpyxl库写入Excel文件。首先,创建一个工作簿,然后获取当前活跃的工作表。接着,通过cell方法写入单元格数据,通过append方法写入一行数据。最后,保存工作簿。
from openpyxl import load_workbook
workbook = load_workbook('D:\\Py_exercise\\test_openpyxl.xlsx')
#booksheet = workbook.active #获取当前活跃的sheet,默认是第一个sheet
sheets = workbook.get_sheet_names() #从名称获取sheet
booksheet = workbook.get_sheet_by_name(sheets[0])
rows = booksheet.rows
columns = booksheet.columns
#迭代所有的行
for row in rows:
line = [col.value for col in row]
#通过坐标读取值
cell_11 = booksheet.cell('A1').value
cell_11 = booksheet.cell(row=1, column=1).value
上述代码展示了如何使用openpyxl库读取Excel文件。首先,打开工作簿,然后获取工作表。接着,通过迭代所有行,读取单元格数据。最后,通过坐标读取特定单元格的值。
pandas库
pandas库主要用于处理CSV文件。它提供了简单而强大的数据操作功能,适合处理大规模数据。
import pandas as pd
csv_mat = np.empty((0,2),float)
csv_mat = np.append(csv_mat, [[43,55]], axis=0)
csv_mat = np.append(csv_mat, [[65,67]], axis=0)
csv_pd = pd.DataFrame(csv_mat)
csv_pd.to_csv("test_pd.csv", sep=',', header=False, index=False)
上述代码展示了如何使用pandas库写入CSV文件。首先,创建一个空的二维数组,然后追加数据。接着,将数据转换为DataFrame,最后保存为CSV文件。
import pandas as pd
filename = "D:\\Py_exercise\\test_pd.csv"
csv_data = pd.read_csv(filename, header=None)
csv_data = np.array(csv_data, dtype=float)
上述代码展示了如何使用pandas库读取CSV文件。首先,打开文件,然后读取数据。最后,将数据转换为NumPy数组。
总结
在Python中,处理表格数据有多种库可供选择。xlwt/xlrd适用于Excel文件,openpyxl支持.xlsx格式,pandas适合CSV文件处理。不同库原理相同,但写法有差异。建议无格式要求时存储为CSV文件,因为CSV文件读取非常简单。
以上就是Python表格存取方法的详细内容,更多关于Python表格存取的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













