【通过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文件中数据的某些关键词出现次数的统计,对应值总数的统计,欢迎留言讨论其他的方法

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值