Пакетная обработка данных Python в Excel (6)

Python

"Это 6-й день моего участия в ноябрьском испытании обновлений, ознакомьтесь с подробностями события:Вызов последнего обновления 2021 г."

1 Пакетная сортировка по возрастанию

Если вы использовали Excel, вы должны быть знакомы с функцией сортировки.

Как показано на рисунке ниже, выберите любую ячейку в столбце для сортировки, в ней есть кнопка возрастания, и вы можете отсортировать столбец кода материала в порядке возрастания.

image.pngОчевидно, что использовать эту функцию в Excel несложно, так как же использовать Python для полной сортировки данных?

Сортировать_значения()

Функция sort_values() в модуле pandas завершает сортировку данных.

код показывает, как показано ниже:

import xlwings as xw
import pandas as pd
app = xw.App(visible = False,add_book = False)
workbook = app.books.open('产品销售统计表.xlsx')
worksheet = workbook.sheets
for i in worksheet:
values = i.range('A1').expand('table').options(pd.DataFrame).value
result = values.sort_values(by='物料编码')
i.range('A1').value = result
workbook.save()
workbook.close()
app.quit()

Путь к файлу рабочей книги, заданный в четвертой строке кода, можно изменить в соответствии с фактическими потребностями.

Строки кода с шестой по девятую — это основная функция, которая сортирует все рабочие листы в рабочей книге в порядке возрастания.

sort_values() — это функция объекта DataFrame в модуле pandas, которая используется для сортировки области данных в соответствии с данными определенного поля, которое может быть полем строки или полем столбца. Его синтаксис следующий:

sort_values(by='##',axis=0,ascending=True,inplace=False,na_position='last')

Если вы хотите отсортировать по убыванию, используйте параметр по возрастанию, чтобы указать метод сортировки в функции sort_values().

result = values.sort_values(by='物料编码',ascending = False)

2 Фильтровать данные в Excel

Используйте Python для классификации подробных данных по названию товара и суммирования суммы продаж каждого товара:

import xlwings as xw
import pandas as pd
app = xw.App(visible = False,add_book = False)
workbook = app.books.open('业绩统计表.xlsx')
worksheet = workbook.sheets
for i,j in enumerate(worksheet):
    values = j,range('A1').options(pd.DataFrame,header = 1,index = False,expand ='table').value
    data = values,reindex(columns=['产品','日期','销售金额'])
    table = table.append(data,ignore_index = True)
table = table.groupby('产品')
new_workbook = xw.books.add()
for idx,group in table:
    new_worksheet = new_workbook.sheets.add(idx)
    new_worksheet['A1'].options(index = False).value = group
    last_cell = new_worksheet['A1'].wxpand('table').last_cell
    last_row = last_cell.row
    last_column = last_cell.column
    last_column_letter = chr(64 + last_column)
    sum_cell_name = '{}{}'.format(last_column_letter,last_row+1)
    sum_last_row_name = '{}{}'.format(last_column_letter,last_row)
    formula = '=SUM({}2:{})'.format(last_column_letter,sum_last_row_name)
    new_worksheet[sum_cell_name].formula = formula
    new_worksheet.autofit()
    new_workbook.save('业绩分类表.xlsx')
workbook.close()
app.quit()

Заголовки столбцов в 9-й строке кода должны совпадать с фактическими заголовками столбцов на листе, и порядок можно изменить по мере необходимости.

Столбец, используемый для фильтрации в 11-й строке кода, называется «Продукт», который можно изменить на другие столбцы в соответствии с фактическими потребностями.

Формула Excel, построенная в коде в строке 22, используется для суммирования суммы покупки. Формулу можно изменить в соответствии с фактическими потребностями для выполнения других расчетов. Например, изменение «СУММ» на «СРЕДНЕЕ» является средним значением, а изменение до «MAX» — найти максимальное значение и так далее.

reindex() — это функция в модуле pandas для изменения порядка строк и столбцов. groupby() используется для группировки данных.