Перенос и расчет данных из одной таблицы Excel в другую Python
Дано: xlsx файл с таблицей 1 столбец - ФИО 2 столбец - наличие у ФИО атрибута A 3 столбец - наличие у ФИО атрибута B Необходимо: создать новый xlsx файл с таблицей результатов:
- подсчитать общее количество ячеек по столбцу 1 (без учета заголовка),
- подсчитать кол-во ФИО с атрибутом А и В,
- подсчитать кол-во ФИО с только атрибутом А
- подсчитать кол-во ФИО с только атрибутом В
- подсчитать кол-во ФИО без атрибутов
Нашел как перенести данные из одного столбца таблицы в другую с помощью openpyxl:
import openpyxl
import pandas as pd
book = openpyxl.Workbook()
book.remove(book.active)
sheet = book.create_sheet('Result1')
book.save('Задание1.xlsx')
wb1 = openpyxl.load_workbook('ФИО.xlsx')
ws1 = wb1['Contracts']
wb2 = openpyxl.load_workbook('Задание1.xlsx')
ws2 = wb2['Result1']
target_cell_num = 1
for i,cell in enumerate(ws1['A']):
ws2[f'A{target_cell_num + i}'] = cell.value
wb2.save(filename='Задание1.xlsx')
А как посчитать данные по исходным столбцам не понимаю. Направьте, пожалуйста, на верный путь
вот исходник excel: ID ФИО: 1234567890 9876543210 7894561230 6543219870 5678941230 8527419630 2058794612 3021456789 4178520369 9954786302 Атрибут A да нет нет да нет нет да нет да нет Атрибут B нет нет да да да нет нет нет да да
Ответы (1 шт):
Ну, наконец, автор начал давать хоть какую-то инфу
Что касается подсчетов, это можно сделать так:
import pandas as pd
df = pd.DataFrame(
{'ФИО':
['1234567890', '9876543210', '7894561230', '6543219870', '5678941230', '8527419630', '2058794612', '3021456789', '4178520369', '9954786302', ],
'АтрибутA':
['да', 'нет', 'нет', 'да', 'нет', 'нет', 'да', 'нет', 'да', 'нет'],
'АтрибутB':
['нет', 'нет', 'да', 'да', 'да', 'нет', 'нет', 'нет', 'да', 'да']})
len(df) # 10
len(df[(df['АтрибутA'] == 'да') & (df['АтрибутB'] == 'да')]) # 2
len(df[df['АтрибутA'] == 'да']) # 4
len(df[df['АтрибутB'] == 'да']) # 5
len(df[(df['АтрибутA'] != 'да') & (df['АтрибутB'] != 'да')]) # 3