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

Мы можем читать данные в пандах -
import pandas as pd
df = pd.read_excel("ExcelTemplate.xlsx")
df
Index SOC Index2 12NC
0 YXGMY 0 ZJIZX 23445
1 NQHQC 0 JKJKT 23445
2 MWTLY 0 EFCYD 23445
3 RPQFE AC VLOJZ 23445
4 GPLUQ AC AKKKG 23445
5 WGYYM AC DSMLO 23445
6 XGTAQ 0 ZHGWS 45667
7 AMWDT 0 YROLO 45667
следующий код выполнит суммирование -
- Сначала суммируйте данные по 12NC и SOC и возьмите счет
- Сортируйте по 12NC, количеству и SOC, с наибольшимсчитать первым
- Принимать первое значение SOC для каждого 12NC
- Объединять с исходными данными для создания столбца E
- Экспорт обратно в Excel
df1 = df.groupby(['12NC', 'SOC'])['Index'].count().reset_index()
df = df.merge(df1[df1['SOC']!=0].sort_values(by=['12NC', 'Index', 'SOC'], ascending=[True, False, True])\
.drop_duplicates(subset=['12NC'], keep='first')[['12NC', 'SOC']].\
rename(index=str, columns={'SOC': 'ModifiedSOCwrt12NC'}),\
on = ['12NC'], how='left')
df.to_excel("ExcelTemplate_modifies.xlsx", index=False)