栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【通过unique()、describe()和groupby() 统计csv文件中的数据】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【通过unique()、describe()和groupby() 统计csv文件中的数据】

pandas lessons系列文章

lesson_one—通过sort和max方法 获取csv文件中最值数据
lesson_two—通过unique()、describe()和groupby() 统计csv文件中的数据


1.构建数据
def create_data():
    # 初始数据集: 婴儿名字和出生率
    names = ['Bob','Jessica','Mary','John','Mel']
    random.seed(500)# 创建一个种子
    # 从 names 列表中选在一个随机名字并执行 1000 次
    random_names = [names[random.randint(0,len(names)-1)] for i in range(1000)]
    # 打印前10个名字
    print(random_names[:10])

    births = [random.randint(0,1000) for i in range(1000)]
    # 打印前10个生日
    print(births[:10])
    BabyDataList = list(zip(random_names, births))
    # 打印前十个
    print(BabyDataList[:10])
    return BabyDataList

结果:

['John', 'Mel', 'Mel', 'John', 'Mary', 'John', 'Jessica', 'Bob', 'Mary', 'Mel']
[665, 799, 763, 580, 330, 402, 499, 118, 7, 20]
[('John', 665), ('Mel', 799), ('Mel', 763), ('John', 580), ('Mary', 330), ('John', 402), ('Jessica', 499), ('Bob', 118), ('Mary', 7), ('Mel', 20)]

这边用到了随机数生成的random()函数,生成一个随机性强的数据,便于后期的处理

2.写入文件
	BabyDataSet = create_data()

    # df 是一个 DataFrame对象。 你可以把这个对象理解为包含了 BabyDataset 的内容而格式非常象一个 sql 表格或者 Excel 的数据表
    df = pd.DataFrame(data = BabyDataSet, columns=['Names', 'Births'])
    print(df[:10])
    # 将df数据输出到csv文件中
    df.to_csv('births1000.csv', index=False, header=True)

结果:

      Names  Births
0     John     665
1      Mel     799
2      Mel     763
3     John     580
4     Mary     330
5     John     402
6  Jessica     499
7      Bob     118
8     Mary       7
9      Mel      20

如果对 DataFrame 结构不了解的话可以参考这篇博客:Pandas数据结构–Series、DataFrame详解

3.读取文件
	# 读取csv文件
    Location = r'./births1000.csv'
    df = pd.read_csv(Location)
4.统计数据 4.1 unique()方法
# 使用 dataframe 的 unique 属性找出 "Names" 列的所有唯一的(unique)的记录。
# 方法一
for x in df['Names'].unique():
    print(x)

unique()方法返回参数数组中所有不同的值,并按照从小到大排序

关于unique()函数的详细用法可以参考这篇博客:https://blog.csdn.net/qq_41325698/article/details/87557262

John
Mel
Mary
Jessica
Bob
4.2 describe() 方法
# 方法二
print(df['Names'].describe())

describe()函数的详细用法可以参考这篇博客:pandas describe()函数使用介绍

count     1000
unique       5
top       Mary
freq       220
4.3 groupby() 方法
# 通过groupby函数进行统计计算
# 创建一个 groupby 的对象
name = df.groupby('Names')
# 在 groupby 对象上执行求和(sum)的功能
df = name.sum()
print(df)

结果:

Names	  Births
Bob       94505
Jessica   98358
John     106004
Mary     101369
Mel      109685

groupby()函数的详细用法可以参考这篇博客:pandas groupby()函数使用及参数详解

这样就实现了对于csv文件中数据的某些关键词出现次数的统计,对应值总数的统计,欢迎留言讨论其他的方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971165.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号