前言
这个女娃娃是否有一种初恋的感觉呢,但是她很明显不是一个真正意义存在的图片,我们需要很复杂的推算以及各种炼丹模型生成的AI图片,我自己认为难度系数很高,我仅仅用了64个文字形容词就生成了她,很有初恋的感觉,符合审美观,对于计算机来说她是一组数字,可是这个数字是怎么推断出来的就是很复杂了,我们在模型训练中可以看到基本上到处都存在着Pandas处理,在最基础的OpenCV中也会有很多的Pandas处理,所以我OpenCV写到一般就开始写这个专栏了,因为我发现没有Pandas处理基本上想好好的操作图片数组真的是相当的麻烦,可以在很多AI大佬的文章中发现都有这个Pandas文章,每个人的写法都不同,但是都是适合自己理解的方案,我是用于教学的,故而我相信我的文章更适合新晋的程序员们学习,期望能节约大家的事件从而更好的将精力放到真正去实现某种功能上去。本专栏会更很多,只要我测试出新的用法就会添加,持续更新迭代,可以当做【Pandas字典】来使用,期待您的三连支持与帮助。
环境
系统环境:win11
Python版本:python3.9
编译工具:PyCharm Community Edition 2022.3.1
Numpy版本:1.19.5
Pandas版本:1.4.4
基础函数的使用
Pandas数据处理——渐进式学习、DataFrame(函数检索-请使用Ctrl+F搜索)
DataFrame记录每个值出现的次数
语法
DataFrame.duplicated(subset=None,keep='first')
参数
subset:判断是否是重复数据时考虑的列
keep:保留第一次出现的重复数据还是保留最后一次出现的
重复值的数量
import pandas as pd import numpy as np df = pd.DataFrame( {'name': ['张丽华', '李诗诗', '王语嫣', '李诗诗', '李诗诗', '李诗诗', '李诗诗'], 'sex': ['girl', 'woman', np.nan, 'girl', 'woman', 'woman', 'woman'], 'age': [22, np.nan, 16, np.nan, 27, 27, 27] } ) print(df) print("----duplicated----") # duplicated count = df.duplicated(subset=['name']).sum() print("重复值数量:", count)
我们看了共计有5个李诗诗,因为第一个没有计数,从第二个开始计数故而输出结果是:4
重复值
import pandas as pd import numpy as np df = pd.DataFrame( {'name': ['张丽华', '李诗诗', '王语嫣', '李诗诗', '李诗诗', '李诗诗', '李诗诗'], 'sex': ['girl', 'woman', np.nan, 'girl', 'woman', 'woman', 'woman'], 'age': [22, np.nan, 16, np.nan, 27, 27, 27] } ) print(df) print("----duplicated----") # duplicated pr = df.duplicated(subset=['name']) print("重复值:") print(pr)
可以看到的数值匹配。
打印重复的值
import pandas as pd import numpy as np df = pd.DataFrame( {'name': ['张丽华', '李诗诗', '王语嫣', '李诗诗', '李诗诗', '李诗诗', '李诗诗', '王语嫣', '王语嫣', '王语嫣'], 'sex': ['girl', 'woman', np.nan, 'girl', 'woman', 'woman', 'woman', 'girl', 'girl', 'girl'], 'age': [22, np.nan, 16, np.nan, 27, 27, 27, 16, 16, 16] } ) print(df) print("----duplicated----") # duplicated print("打印重复的值:") print(df[df.duplicated(subset=['name']) == True])
实际输出
总结
这个函数不是很好用,没有Counter函数好用呢,谁用谁知道。
这里我留一个Counter函数的例子。
我们创建一个测试数据:
from collections import Counter nums = [1, 1, 1, 6, 6, 6, 7, 8] count = Counter(nums) # 统计词频 print(count)
测试数据输出可以看到依然是Counter类型,我们需要进行具体的遍历:
遍历:
from collections import Counter nums = [1, 1, 1, 6, 6, 6, 7, 8] count = Counter(nums) # 统计词频 for k, v in count.items(): print(k, v)
遍历效果:
到这里就能看到用法了,我们可以根据这个数据进行排序,例如一个冒泡排序:
from collections import Counter nums = [1, 1, 1, 6, 6, 6, 7, 8] count = Counter(nums) # 统计词频 temp = [] for i, j in count.items(): result = ["", ""] result[0] = i result[1] = j temp.append(result) # 倒序排列一下 for i in range(0, len(temp) - 1): for j in range(0, len(temp) - i - 1): if temp[j][1] < temp[j + 1][1]: temps = temp[j] temp[j] = temp[j + 1] temp[j + 1] = temps for i in temp: print("值", i[0], "数量", i[1])
倒序效果:
希望能给大家带来一些帮助。