统计每个文件夹各类图片个数1 背景2 整体思路3 读入所有文件夹4 读每个文件夹下面图片4.1 判断空文件夹有多少个5 看每个文件夹平均有多少张图片6 数据筛选6.1 筛选出big_num为0的 然后去检查一下6.2 筛选出rec_num为0的 然后去检查一下7 结论

1 背景

现在已经通过爬虫将所有商家首页的图片下载ok,但给导师汇报总的有个基本的结论吧,也就是说,多少文件夹没有图片,分为big和rec,两者任一为空有多少?均为空多少?平均每个文件夹有多少图片?这就需要去统计一波了!

2 整体思路

通过循环遍历每一个文件夹

获取一个文件夹下面所有文件的名称,然后如果出现rec或者big分别进行计数,所以一开始定义为0

每一个循环形成一个DataFrame 放到list 最后进行一个concat 大功告成

3 读入所有文件夹

import os

all_folds = os.listdir('702个美团商户上传图片/')

all_folds = [x for x in all_folds if '.' not in x]

print(len(all_folds))

all_folds[:5]

702

['150569726', '163443323', '177474079', '68654281', '178086221']

4 读每个文件夹下面图片

import pandas as pd

import time

data_need = []

t0 = time.time()

for i in range(len(all_folds)):

# for i in range(0,5):

print('正在统计第 %d 个文件夹' % (i+1))

# 定位每一个文件夹

path = all_folds[i]

# 遍历文件夹所有文件内容

all_files = os.listdir(path)

# 计数-big/rec

big_num = 0

rec_num = 0

for j in all_files:

if 'big' in j:

big_num += 1

elif 'rec' in j:

rec_num += 1

else:

pass

# 构建数据框

# print(big_num)

# print(rec_num)

y = pd.DataFrame({'mer_id': all_folds[i],

'big_num': [big_num],

'rec_num': [rec_num]})

# 加到全局的list里面

data_need.append(y)

# 合并数据

data_final = pd.concat(data_need, axis=0)

t1= time.time()

print('所有文件夹统计完毕,花费时间为 %.2f s' % (t1 - t0))

正在统计第 1 个文件夹

正在统计第 2 个文件夹

正在统计第 3 个文件夹

正在统计第 4 个文件夹

正在统计第 5 个文件夹

......

正在统计第 698 个文件夹

正在统计第 699 个文件夹

正在统计第 700 个文件夹

正在统计第 701 个文件夹

正在统计第 702 个文件夹

所有文件夹统计完毕,花费时间为 0.62 s

data_final.index = range(len(data_final))

print(data_final.shape)

data_final.head()

(702, 3)

mer_id

big_num

rec_num

0

150569726

5

6

1

163443323

2

6

2

177474079

5

6

3

68654281

2

0

4

178086221

0

4

data_final.head(10)

mer_id

big_num

rec_num

0

150569726

5

6

1

163443323

2

6

2

177474079

5

6

3

68654281

2

0

4

178086221

0

4

5

95463330

0

0

6

50333471

0

0

7

4984182

2

0

8

182596141

1

0

9

4438304

3

6

4.1 判断空文件夹有多少个

思路:

使用map函数(配合使用lambda匿名函数),先定义一个函数(如果两项为0 则返回0)

def f(x,y):

if x == y == 0:

return 0

else:

return 1

data_final['count_0_0'] = data_final.index.map(lambda x: f(data_final['big_num'][x], data_final['rec_num'][x]))

data_final.head(10)

mer_id

big_num

rec_num

count_0_0

0

150569726

5

6

1

1

163443323

2

6

1

2

177474079

5

6

1

3

68654281

2

0

1

4

178086221

0

4

1

5

95463330

0

0

0

6

50333471

0

0

0

7

4984182

2

0

1

8

182596141

1

0

1

9

4438304

3

6

1

df_0_0 = data_final[data_final['count_0_0']==0]

print(df_0_0.shape) # 即140个双空!

(140, 4)

5 看每个文件夹平均有多少张图片

data_final['total'] = data_final['big_num'] + data_final['rec_num']

data_final['total'].describe()

count 702.000000

mean 6.200855

std 4.306827

min 0.000000

25% 2.000000

50% 8.000000

75% 11.000000

max 11.000000

Name: total, dtype: float64

6 数据筛选

6.1 筛选出big_num为0的 然后去检查一下

big_0 = data_final[data_final['big_num'] == 0]

print(big_0.shape)

big_0.head()

(176, 5)

mer_id

big_num

rec_num

count_0_0

total

4

178086221

0

4

1

4

5

95463330

0

0

0

0

6

50333471

0

0

0

0

10

179178989

0

0

0

0

15

154048692

0

0

0

0

6.2 筛选出rec_num为0的 然后去检查一下

rec_0 = data_final[data_final['rec_num'] == 0]

print(rec_0.shape)

rec_0.head()

(226, 5)

mer_id

big_num

rec_num

count_0_0

total

3

68654281

2

0

1

2

5

95463330

0

0

0

0

6

50333471

0

0

0

0

7

4984182

2

0

1

2

8

182596141

1

0

1

1

检查思路:

通过将上述id与原有数据匹配,selenium到每一个网址,肉眼判断是否有漏的!

7 结论

数据概况:

总共有702个文件夹,即有702个商户。

有176个商户没有大图

有226个商户没有推荐菜

有140个商户没有大图也没有推荐菜

平均每个文件夹有6张图片,一个文件夹下图片最多的有11张!

python统计图片数量_Python | 统计每个文件夹各类图片个数相关推荐

  1. python软件名字_python怎么获得文件夹名字

    匿名用户 1级 2017-07-27 回答 本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹 ...

  2. 管道/查明文件夹中图片个数

    管道为一种通信方式 我们使用"|"连接两个命令,shell会将前后两个进程的输入输出用一个管道相连,以便达到进程间通信的目的. 管道本质上就是一个文件,前面的进程以写方式打开文件, ...

  3. python指定目录_python生成指定文件夹目录树

    # -*- coding: utf-8 -*- import sys from pathlib import Path class DirectionTree(object): "" ...

  4. 统计文件夹中图片的个数

    条件:有一个文件夹,里面不仅有子文件夹,还有一些其他格式的文件.子文件夹里面是图片, 现在需要统计每个子文件夹中图片的个数. import os path = 'D:/testin/common-mo ...

  5. python3 统计文件夹下文件(含文件夹)的个数

    import osdef dircount(DIR):return len(os.listdir(DIR)) 经检验,统计结果不包含子文件夹中的个数,只统计至文件夹下的文件夹以及文件的个数.如果需要统 ...

  6. python创建文件夹和文件夹_Python快捷创建文件夹和文件详解

    Python快捷创建文件夹和文件详解 自己做文件时发现  简单的反复操作十分浪费时间,于是想到了 使用Python,这个分享给大家,快捷高效办公. 1.创建文件夹 # 批量 创建文件夹 import ...

  7. python在当前目录创建txt文件-python根据txt文本批量创建文件夹

    前言 前言:想写这个代码的原因是因为实习的时候需要根据表格名创建对应的文件夹,如果只是很少个数文件夹的话,ctrl+shift+n还可以接受吧,可是一次就要创建几百个文件夹,这就有点方方了.所以我写了 ...

  8. Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理

    Python 连接 FTP 服务器并实现文件夹下载实例演示 第一章:连接 FTP 服务器并实现文件夹下载 ① 连接 FTP 服务器 ② 进入指定目录并显示文件信息 ③ 区分文件和文件夹名 ④ 文件夹名 ...

  9. python爬取图片然后保存在文件夹中

    python爬取图片然后保存在文件夹中 直接上代码: import os import requests import redef getimg(soup,i):print('http:'+ soup ...

  10. 好用的python打包软件_Python打包exe文件方法汇总【4种】

    title: Python打包exe文件方法 copyright: true top: 0 date: 2018-08-11 21:08:21 tags: 打包 categories: Python进 ...

最新文章

  1. 如何部署自动驾驶系统
  2. 皮一皮:论出门带物的重要性...
  3. 实现SQL Server 2012 镜像
  4. [75] Making arrangements
  5. 罗永浩签约抖音后,带货首秀或将献给小米,你看好这笔生意吗?
  6. 自动化测试--实现一套完全解耦的简单测试框架(二)
  7. WAS7.0安装补丁升级程序无法替换文件 java/docs/autorun.inf解决办法
  8. 2月20日 梯度下降、三种方式、三种超参数学习率冲量衰减因子、应用举例
  9. 第四季-专题2-U-Boot新手入门
  10. Firefox浏览Flash网页乱码的解决方案
  11. 微信分享ios 不显示图片和简介问题总结
  12. 「面向对象程序设计-C++」学习笔记(下半部分)
  13. java + selenium 实现QQ快速安全登录xx网站
  14. 人生的色彩,是五彩斑斓还是单调无味?
  15. Makefile 指南
  16. 高通 安卓 Uefi 的理解
  17. 二级域名配置以及nginx解析二级域名到html页面
  18. 美通企业日报 | 中国空调行业低增长将成常态;可穿戴设备市场价值将超500亿美元...
  19. Jetpack学习之Paging
  20. Java基础总结(初学者)

热门文章

  1. 1.定义ddos僵尸网络
  2. Microsoft SQL Server 2000 简体中文企业版 +SP4升级补丁
  3. 网络编辑必知常识:什么是PV、UV和PR值
  4. spark大数据的学习
  5. 可汗学院公开课:线性代数笔记-10-三元线性方程
  6. HTML meta标签使用介绍
  7. Java面试题目和答案
  8. 网络存储专有名词介绍
  9. Android 多点触控
  10. MStar点屏(LVDS接口屏)