当你获得一组数据
头发 声音 性别 [['长', '粗', '男'], ['短', '粗', '男'], ['短', '粗', '男'], ['长', '细', '女'], ['短', '细', '女'], ['短', '粗', '女'], ['长', '粗', '女'], ['长', '粗', '女']]
该如何对它按照特征进行分类
当然,最简单的,可以利用groupby进行分组
import pandas as pd
dataset = [['长', '粗', '男'],
['短', '粗', '男'],
['短', '粗', '男'],
['长', '细', '女'],
['短', '细', '女'],
['短', '粗', '女'],
['长', '粗', '女'],
['长', '粗', '女']]
hair_list = []
voice_list = []
sex_list = []
for i in range(len(dataset)):
hair_list.append(dataset[i][0])
voice_list.append(dataset[i][1])
sex_list.append(dataset[i][2])
data = pd.DataFrame({
"hair": hair_list,
"voice": voice_list,
"sex": sex_list
})
group = data.groupby("sex") # 按照sex进行分类
for i in list(group): # 如果不追求美观的话此处循环也可用print(list(group))代替
print(i)
if i == ")":
print("\n")
可以得到这样的输出结果
('女', hair voice sex
3 长 细 女
4 短 细 女
5 短 粗 女
6 长 粗 女
7 长 粗 女)
('男', hair voice sex
0 长 粗 男
1 短 粗 男
2 短 粗 男)
但这毕竟是人为给定的分类结果,存在着数据量过大不好认为分析或分析错误的情况(不一定选择的特征就是最优特征&#