数据框组ID,创建值:列中的计数 [英] Data frame group ID, create value: count in column

查看:50
本文介绍了数据框组ID,创建值:列中的计数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出以下示例数据集:

import numpy as np
import pandas as pd
df1 = (pd.DataFrame(np.random.randint(3, size=(5, 4)), columns=('ID', 'X1', 'X2', 'X3')))
print(df1)

   ID  X1  X2  X3
0   2   2   0   2
1   1   0   2   1
2   1   2   1   1
3   1   2   0   2
4   2   0   0   0

d = {'ID' : pd.Series([1, 2, 1, 4, 5]), 'Tag' : pd.Series(['One', 'Two', 'Two', 'Four', 'Five'])}
df2 = (pd.DataFrame(d))
print(df2)

   ID   Tag
0   1   One
1   2   Two
2   1   Two
3   4  Four
4   5  Five

df1['Merged_Tags'] = df1.ID.map(df2.groupby('ID').Tag.apply(list))
print(df1)

   ID  X1  X2  X3 Merged_Tags
0   2   2   0   2       [Two]
1   1   0   2   1  [One, Two]
2   1   2   1   1  [One, Two]
3   1   2   0   2  [One, Two]
4   2   0   0   0       [Two]

ID = 1的预期输出:

1.

每个键如何分组并在Merged_Tags列中生成Tag: Frequency格式?

How would one groupby each key and generate a Tag: Frequency format in the Merged_Tags column?

    ID  X1  X2  X3     Merged_Tags
1   1   0   2   1  [One: 3, Two: 3]

2.

为具有ID

    ID  X1  X2  X3      Merged_Tags  Frequency
1   1   0   2   1  [One: 3, Two: 3]      3

3.

在每个出现的行中将列X3的值添加为相同的ID

Add the values of column X3 in each row occurrence with the same ID

    ID  X1  X2  X3      Merged_Tags  Frequency  X3++
1   1   0   2   1  [One: 3, Two: 3]      3        4

推荐答案

1   0   2   1  [One: 3, Two: 3]

应该改为[一:2,二:3],对吗?考虑到:

should be [One: 2, Two:3] instead right? Considering that:

  1 : [One,Two]
  0 : None
  2 : [Two]
  1 : [One, Two]

并且您想要该行中每个键的总计数器吗?

and you want a total counter of each key in the row ?

如果我在这里遗漏了任何内容,请帮助我理解[One:3,Two:3]背后的直觉,但否则您的问题应该很容易解决

Please help me understand the intuition behind [One:3, Two:3] in case I am missing anything here, but your question should be easy to solve otherwise

这篇关于数据框组ID,创建值:列中的计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆