学习Pandas(六)

英文原文: 06 - Lesson

我们看一下 groupby 这个函数。

# 导入库
import pandas as pd
import sys
print('Python version ' + sys.version)
print('Pandas version ' + pd.__version__)

    Python version 3.6.1 | packaged by conda-forge | (default, Mar 23 2017, 21:57:00) 
    [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]
    Pandas version 0.19.2
# 我们的小数聚集
d = {'one':[1,1,1,1,1],
     'two':[2,2,2,2,2],
     'letter':['a','a','b','b','c']}

# 创建一个 dataframe
df = pd.DataFrame(d)
df
letteronetwo
0a12
1a12
2b12
3b12
4c12

# 创建一个 groupby 对象
one = df.groupby('letter')

# 在分组上应用 sum() 函数
one.sum()
onetwo
letter
a24
b24
c12

letterone = df.groupby(['letter','one']).sum()
letterone
two
letterone
a14
b14
c12

letterone.index

    MultiIndex(levels=[['a', 'b', 'c'], [1]],
               labels=[[0, 1, 2], [0, 0, 0]],
               names=['letter', 'one'])

你可能不想把用来分组的列名字作为索引,像下面的做法很容易实现。

letterone = df.groupby(['letter','one'], as_index=False).sum()
letterone
letteronetwo
0a14
1b14
2c12

letterone.index
   Int64Index([0, 1, 2], dtype='int64')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值