Изменить значения в указанных столбцах c в книге с несколькими таблицами ExcelSheet, используя Python? - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть книга с именем CustomerSales с двумя рабочими листами Excel с именами sheet1 и sheet2 на обоих листах. Мне нужно записать / изменить значения в определенных значениях столбца, поэтому я использовал.

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 

Здесь данные - это Dataframe sheet1 здесь код работает отлично. Файл resultexcel обновил значения столбцов enter image description here

Но когда я пытаюсь выполнить приведенный выше код с фреймом данных sheet2, существующие данные sheet1 заменяются sheet2. Есть ли способ, которым я могу изменить оба значения листов.

1 Ответ

0 голосов
/ 29 апреля 2020

Чтобы манипулировать данными на обоих листах, вы должны прочитать файл с помощью 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...