"Это 6-й день моего участия в ноябрьском испытании обновлений, ознакомьтесь с подробностями события:Вызов последнего обновления 2021 г."
1 Пакетная сортировка по возрастанию
Если вы использовали Excel, вы должны быть знакомы с функцией сортировки.
Как показано на рисунке ниже, выберите любую ячейку в столбце для сортировки, в ней есть кнопка возрастания, и вы можете отсортировать столбец кода материала в порядке возрастания.
Очевидно, что использовать эту функцию в 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() используется для группировки данных.