列数据种类数量统计

列数据种类数量统计

主要基于pandas的unique函数
这个函数是为了方便分析数据的时候写出来的一个想法(大佬轻喷)

数量统计函数的代码
def Catg_stati(array):
    array_type = list(array.unique())
    array_list = list(array)
    array_num = []
    #clean
    for i in range(len(array_type)):
        array_num.append(0)
    #count
    for i in array_list:
        for j in array_type:
            if i==j:
                array_num[array_type.index(j)]+=1
    #sort
    for i in range(len(array_type)):
        for j in range(i,len(array_type)):
            if array_num[i] < array_num[j]:
                array_num[i],array_num[j]=array_num[j],array_num[i]
                array_type[i],array_type[j]=array_type[j],array_type[i]
    #print
    for i in range(len(array_type)):
        print(array_type[i],":",array_num[i])
现在让我们拿一个样例来测试一下

列数据种类数量统计_第1张图片

读取数据
#读取数据
import pandas as pd
data = pd.read_csv('scsdsjzx_fjfqxx_13473782712551364419.csv',encoding="gbk")
data.head(1)
发布时间 市(州) 县(市、区) 风险级别 更新时间
0 2020年2月28日 成都市 青羊区、成华区、龙泉驿区、青白江区、蒲江县、新津县、都江堰市、彭州市、崇州市、双流区 低风险 03:57.0
选两个较有意义的数据列保存
city = data["市(州)"]
level = data["风险级别"]
#这里合并两个列,方便统计各城市风险级别情况
data.loc[:,"city_level"] = city + level
引入统计数量的函数
def Catg_stati(array):
    array_type = list(array.unique())
    array_list = list(array)
    array_num = []
    #clean
    for i in range(len(array_type)):
        array_num.append(0)
    #count
    for i in array_list:
        for j in array_type:
            if i==j:
                array_num[array_type.index(j)]+=1
    #sort
    for i in range(len(array_type)):
        for j in range(i,len(array_type)):
            if array_num[i] < array_num[j]:
                array_num[i],array_num[j]=array_num[j],array_num[i]
                array_type[i],array_type[j]=array_type[j],array_type[i]
    #print
    for i in range(len(array_type)):
        print(array_type[i],":",array_num[i])
调用
Catg_stati( city )

运行结果:
甘孜藏族自治州 : 252
成都市 : 248
绵阳市 : 245
广元市 : 245
遂宁市 : 245
内江市 : 245
眉山市 : 245
宜宾市 : 245
广安市 : 245
达州市 : 245
雅安市 : 245
巴中市 : 245
资阳市 : 245
德阳市 : 245
凉山彝族自治州 : 245
泸州市 : 244
自贡市 : 242
乐山市 : 239
攀枝花市 : 237
南充市 : 237
低风险 : 236
阿坝藏族羌族自治州 : 233

Catg_stati( level )

运行结果:
低风险 : 4565
中风险 : 309
高风险 : 7
nan : 0

Catg_stati( data["city_level"] )

运行结果:
成都市低风险 : 229
自贡市低风险 : 229
攀枝花市低风险 : 229
泸州市低风险 : 229
德阳市低风险 : 229
绵阳市低风险 : 229
广元市低风险 : 229
遂宁市低风险 : 229
内江市低风险 : 229
乐山市低风险 : 229
眉山市低风险 : 229
宜宾市低风险 : 229
广安市低风险 : 229
达州市低风险 : 229
雅安市低风险 : 229
巴中市低风险 : 229
资阳市低风险 : 229
阿坝藏族羌族自治州低风险 : 229
凉山彝族自治州低风险 : 222
南充市低风险 : 221
成都市中风险 : 19
广元市中风险 : 16
遂宁市中风险 : 16
内江市中风险 : 16
南充市中风险 : 16
眉山市中风险 : 16
宜宾市中风险 : 16
广安市中风险 : 16
达州市中风险 : 16
雅安市中风险 : 16
巴中市中风险 : 16
资阳市中风险 : 16
甘孜藏族自治州中风险 : 16
凉山彝族自治州中风险 : 16
德阳市中风险 : 16
绵阳市中风险 : 16
泸州市中风险 : 15
自贡市中风险 : 13
乐山市中风险 : 10
攀枝花市中风险 : 8
甘孜藏族自治州高风险 : 7
阿坝藏族羌族自治州中风险 : 4
nan : 0

主要思路

函数的主要是通过pandas的unique函数把一个列的数据保存到一个列表里,然后再通过与原数据列的对比,统计每个类型数据的个数

你可能感兴趣的:(pandas,数据分析,python,数据分析)