使用 Excel 数据时选择 pandas 而不是 xlsxwriter
Choosing pandas over xlsxwriter when working with Excel data
既然Pandas使用了xlsxwriter模块,既然可以直接使用xlsxwriter,为什么还要使用Pandas呢?
也许一个更直接的问题是,为什么在处理 excel 数据时要考虑用 Pandas 替换 xlsxwriter?
我提出这个问题的目的是帮助人们决定在处理 Excel 数据时是使用 xlsxwriter 还是 Pandas。
一个字:方便。在处理数据时,读写 from/to Excel 电子表格是一项 非常 的常见任务。例如,这里是如何从 xlsxwriter
tutorial 创建一个非常简单的 Excel 文件:
import xlsxwriter
# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('Expenses01.xlsx')
worksheet = workbook.add_worksheet()
# Some data we want to write to the worksheet.
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
# Start from the first cell. Rows and columns are zero indexed.
row = 0
col = 0
# Iterate over the data and write it out row by row.
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
# Write a total using a formula.
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')
workbook.close()
与 pandas 比较:
import pandas as pd
df = pd.DataFrame({
'Amount': [1000, 100, 300, 50]
}, index=['Rent', 'Gas', 'Food', 'Gym'])
df.loc['Total', 'Amount'] = df['Amount'].sum()
df.to_excel('Expenses01.xlsx', index=False)
他们当然不完全相等。 xlsxwriter
为总和创建了一个公式,但您必须编写的样板代码数量巨大。 df.to_excel
是一个将数据帧转储到 Excel 的简单命令。您对生成的文件几乎没有控制权,但根据您的要求,您甚至可能不需要它。
它们是为 2 个完全不同的目的而设计的两个库。 pandas 提供与 xlsxwriter
的集成并不意味着您应该始终选择一个而不是另一个。需要方便时使用df.to_excel
,需要精细控制时使用xlsxwriter
。
既然Pandas使用了xlsxwriter模块,既然可以直接使用xlsxwriter,为什么还要使用Pandas呢?
也许一个更直接的问题是,为什么在处理 excel 数据时要考虑用 Pandas 替换 xlsxwriter?
我提出这个问题的目的是帮助人们决定在处理 Excel 数据时是使用 xlsxwriter 还是 Pandas。
一个字:方便。在处理数据时,读写 from/to Excel 电子表格是一项 非常 的常见任务。例如,这里是如何从 xlsxwriter
tutorial 创建一个非常简单的 Excel 文件:
import xlsxwriter
# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('Expenses01.xlsx')
worksheet = workbook.add_worksheet()
# Some data we want to write to the worksheet.
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
# Start from the first cell. Rows and columns are zero indexed.
row = 0
col = 0
# Iterate over the data and write it out row by row.
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
# Write a total using a formula.
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')
workbook.close()
与 pandas 比较:
import pandas as pd
df = pd.DataFrame({
'Amount': [1000, 100, 300, 50]
}, index=['Rent', 'Gas', 'Food', 'Gym'])
df.loc['Total', 'Amount'] = df['Amount'].sum()
df.to_excel('Expenses01.xlsx', index=False)
他们当然不完全相等。 xlsxwriter
为总和创建了一个公式,但您必须编写的样板代码数量巨大。 df.to_excel
是一个将数据帧转储到 Excel 的简单命令。您对生成的文件几乎没有控制权,但根据您的要求,您甚至可能不需要它。
它们是为 2 个完全不同的目的而设计的两个库。 pandas 提供与 xlsxwriter
的集成并不意味着您应该始终选择一个而不是另一个。需要方便时使用df.to_excel
,需要精细控制时使用xlsxwriter
。