我使用pandas计算文件名中“anystring”列的总和,并添加一行“Totals\u string”,其中包含命名为“anystring”的请求的总和
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进行测试,但它应该以某种方式包含所有感兴趣的名称
谢谢
IIUC,您希望从文件名中提取
Album
后面和下划线_
前面的字符串,然后按该字符串分组,获取总和,并将其放入新表中。如果是这种情况,您可以这样做(我添加了一些任意相册来说明):相关问题 更多 >
编程相关推荐