Я использую pandas для вычисления суммы столбца, в котором «anystring» находится в имени файла, и добавляю строку «Totals_string» с суммой запросов для именованной «any string»
df = pd.read_sql("select count(*) as requests,\
filename,\
file_extension,\
date_trunc('day', log_time) as date\
from "+dbase+"\
where\
filename like '%anyStringA%'\
OR\
filename like '%anyStringB%'\
OR\
filename like '%anyStringC%'\
and\
file_extension not in ('gif')\
group by filename,file_extension,date_trunc('day', log_time)\
order by requests desc",conn)
Это создает df как это:
requests filename Extension date
0 10 xxanyStringAxx .jpg 2018-10-31
1 8 xxanyStringBxx .jpg 2018-10-31
2 11 xxanyStringCxx .jpg 2018-10-31
3 12 xxxanyStringAxx .jpg 2018-10-31
.
Я хотел бы создать новый DF с итогами каждого условия, например,
фрейм данных будет выглядеть как
Totals_anyStringA = 22
Totals_anyStringB = 8
Totals_anyStringC = 11
По предложению @sacul я сделал это:
Totals_df = (df.groupby(df.url_info_filename.str.extract('anyName(.*)')\
.requests.sum()\
.add_prefix('Total_')\
.to_frame()))
Моя ошибка была:
AttributeError: 'Series' object has no attribute 'requests'
* также я только не знаю, как создать новую строку для каждого из разных имен, как вы можете видеть, я только что тестировал с anyStringA, но там должны быть все интересующие вас имена.
Спасибо