python-3.x - 使用 Python 更改具有多个 ExcelSheet 的工作簿中特定列中的值?
问题描述
我有一个名为 CustomerSales 的工作簿,在两个工作表中都有两个名为 sheet1 和 sheet2 的 Excel 工作表,我需要在特定列值中写入/更改值,所以我使用了。
if (data.at[g, 'failedColumn'] == '' and data.at[g, 'reason'] == ''):
data.at[g, 'status'] = 'Fail'
data.at[g, 'failedColumn'] = 'BUKRS'
data.at[g, 'reason'] = 'Customer Not Extended To Any Company code'
data.to_excel(variable)//*variable-path to excel file
这里的数据是 sheet1 的数据框,这里的代码工作得很好 resultexcel 文件已经更新了列值
但是,当我尝试使用 sheet2 数据框的上述代码时,现有 sheet1 数据被 sheet2 替换。有没有办法可以更改两个工作表的值。
解决方案
为了操作两张表中的数据,您应该使用 pandas 读取文件,创建 2 个单独的数据框(每张表一个),然后使用 xlsxwriter 将它们保存在同一个工作簿中。这是一个演示代码:
import pandas as pd
## Read the 2 sheets as separate dataframes
df1 = pd.read_excel('name_of_your_file.xlsx', sheet_name='Sheet1')
df2 = pd.read_excel('name_of_your_file.xlsx', sheet_name='Sheet2')
# Do all of your data manipulation here
# Start using xlsxwriter
writer = pd.ExcelWriter('name_of_the_new_file.xlsx', engine='xlsxwriter')
# Save each df to separate sheet in the same file
df1.to_excel(writer, sheet_name='Sheet1', index=False)
df2.to_excel(writer, sheet_name='Sheet2', index=False)
# You can format your worksheets here
# Finally save the file
writer.save()
推荐阅读
- python - 如何将我的文件保存到我刚刚创建的目录中?
- c++ - 下面的变量是如何分配的?
- java - 资源未从 web.xml 注入数据源 - Java 框架 - Payara Micro - NullPointerException
- powershell - Azure DevOps & 在尝试创建新分支时无法确定工作区
- c# - 初始化 ServiceClient 请参阅错误“参数 1:无法从 'System.Net.Http.HttpClient' 转换为 'System.Net.Http.DelegatingHandler'”
- ampl - 当 'degrees' 是一组整数时,为什么 AMPL 不能将 degree[j] 识别为整数?
- sql - 如何在 Redshift 中将 BIGINT 转换为 DATE?
- python - 如何返回带有轴和数据的散点图?
- macros - 为什么这些嵌套宏无法在导入这些宏的包中创建绑定?
- python - 从另一个 OrderedDict 列表创建 OrderedDict 列表