使用索引元组值作为数据帧的行和列名称将Pandas groupby.groups结果转换为数据帧

seb835

我的groupby.groups的结果返回:

{(2014, 36): [2], (2014, 41): [3, 4], (2013, 10): [0], (2014, 48): [5], (2014, 37): [1]}

我想将其转换为如下所示的数据框:

      2013 2014
10    1    0
36    0    1
37    0    1
41    0    2
48    0    1 

-添加-这是我的工作流程到groupby.groups结果中:

def tr_epoch(epoch):
       y,wn,dn = epoch.isocalendar()
       return y, wn

d = [1362826800, 1410260400, 1409828400, 1412766000, 1412769600, 1417262400 ] 
l = map(lambda x:  tr_epoch(datetime.datetime.fromtimestamp(x)), d)
df = pd.DataFrame(l, columns=['year','week_idx'])
res = df.groupby(['year','week_idx']).groups

-以pythonic方式添加-使用迭代,我会做:

def  to_dict(k,v):
    yr, wk = k
    return {'week': wk, yr: len(v)}

data =  map(lambda(k,v): to_dict(k,v), res.iteritems())
df = pd.DataFrame.from_records(data, index='week').fillna(0).sort()

但我敢肯定,有一种熊猫方法。

乔里斯

因此,您要计算每个组的大小?然后,您可以执行以下操作:

In [31]: df.groupby(['year','week_idx']).size()
Out[31]:
year  week_idx
2013  10          1
2014  36          1
      37          1
      41          2
      48          1
dtype: int64

为了将其重塑为预期的输出,我们现在可以使用unstack将“年”索引级别从行移动到列(并fillna用于获取0):

In [33]: df.groupby(['year','week_idx']).size().unstack(0).fillna(0)
Out[33]:
year      2013  2014
week_idx
10           1     0
36           0     1
37           0     1
41           0     2
48           0     1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将 Spark 数据帧 Groupby 转换为一系列数据帧

来自分类Dev

如何将for循环的结果转换为pandas数据帧?

来自分类Dev

使用groupby构造数据帧

来自分类Dev

对分层索引的数据帧进行GroupBy转换

来自分类Dev

对分层索引的数据帧进行GroupBy转换

来自分类Dev

转换多索引数据帧以保留 groupby() 聚合

来自分类Dev

在python数据帧中使用groupby的语句

来自分类Dev

当一列中的字符串数最大时,Pandas使用groupby转换数据帧

来自分类Dev

使用groupby后,Pandas数据帧被视为系列对象

来自分类Dev

如何将Pandas DataFrame groupby结果转换为DataFrame?

来自分类Dev

如何使用与创建子帧相同的groupby调用将groupby应用于数据帧的子帧

来自分类Dev

使用groupby和get_group将一个数据帧分为几个数据帧

来自分类Dev

我们如何将groupby的结果更改为数据帧?

来自分类Dev

如何将多索引数据转换为数据帧

来自分类Dev

将宽数据帧转换为长数据帧

来自分类Dev

如何将字典的数据帧转换为数据帧?

来自分类Dev

熊猫groupby从父数据帧继承组?

来自分类Dev

熊猫数据帧操作支点/ groupby / reshape

来自分类Dev

将3列(x,y,结果)Python Pandas DataFrame转换为以x(唯一)为行,y(唯一)为列的结果值的数据帧

来自分类Dev

使用 pandas.DataFrame.mode 和 groupby 查找数据帧中的大多数

来自分类Dev

R:将任意串联的变量名称和值的向量转换为单个数据帧

来自分类Dev

如何使用python在json中以列名作为键和行数据作为值转换数据帧的行数据

来自分类Dev

从 Pandas 数据帧转换为 LabeledPoint RDD

来自分类Dev

转换大熊猫数据帧到2层嵌套使用GROUPBY JSON

来自分类Dev

R将数据帧转换为JSON

来自分类Dev

将numpy数组转换为数据帧

来自分类Dev

将数据帧从逻辑转换为数字

来自分类Dev

将获取值转换为数据帧

来自分类Dev

将数据帧转换为矩阵

Related 相关文章

  1. 1

    将 Spark 数据帧 Groupby 转换为一系列数据帧

  2. 2

    如何将for循环的结果转换为pandas数据帧?

  3. 3

    使用groupby构造数据帧

  4. 4

    对分层索引的数据帧进行GroupBy转换

  5. 5

    对分层索引的数据帧进行GroupBy转换

  6. 6

    转换多索引数据帧以保留 groupby() 聚合

  7. 7

    在python数据帧中使用groupby的语句

  8. 8

    当一列中的字符串数最大时,Pandas使用groupby转换数据帧

  9. 9

    使用groupby后,Pandas数据帧被视为系列对象

  10. 10

    如何将Pandas DataFrame groupby结果转换为DataFrame?

  11. 11

    如何使用与创建子帧相同的groupby调用将groupby应用于数据帧的子帧

  12. 12

    使用groupby和get_group将一个数据帧分为几个数据帧

  13. 13

    我们如何将groupby的结果更改为数据帧?

  14. 14

    如何将多索引数据转换为数据帧

  15. 15

    将宽数据帧转换为长数据帧

  16. 16

    如何将字典的数据帧转换为数据帧?

  17. 17

    熊猫groupby从父数据帧继承组?

  18. 18

    熊猫数据帧操作支点/ groupby / reshape

  19. 19

    将3列(x,y,结果)Python Pandas DataFrame转换为以x(唯一)为行,y(唯一)为列的结果值的数据帧

  20. 20

    使用 pandas.DataFrame.mode 和 groupby 查找数据帧中的大多数

  21. 21

    R:将任意串联的变量名称和值的向量转换为单个数据帧

  22. 22

    如何使用python在json中以列名作为键和行数据作为值转换数据帧的行数据

  23. 23

    从 Pandas 数据帧转换为 LabeledPoint RDD

  24. 24

    转换大熊猫数据帧到2层嵌套使用GROUPBY JSON

  25. 25

    R将数据帧转换为JSON

  26. 26

    将numpy数组转换为数据帧

  27. 27

    将数据帧从逻辑转换为数字

  28. 28

    将获取值转换为数据帧

  29. 29

    将数据帧转换为矩阵

热门标签

归档