Python-在数据框中查找具有相同ID的元素并将其分组

时间:2018-12-12 11:53:59

标签: python python-3.x pandas list

我有一个像这样的数据框:

id  value1 value2
 0     1     1
 1     2     3
 2     1     4
 3     1     5
 4     2     1

我希望它像这样:

id  value1 value2  count
 0     1     1,4,5   3
 1     2     3,1     2

2 个答案:

答案 0 :(得分:2)

通过aggjoinsize进行聚合,但是必须将列转换为字符串:

tups = [('value2', lambda x: ','.join(x.astype(str))), ('count', 'size')]
df1 = df.groupby('value1')['value2'].agg(tups).reset_index()
print (df1)
   value1 value2  count
0       1  1,4,5      3
1       2    3,1      2

替代:

tups = [('value2', ','.join), ('count', 'size')]
df1 = df['value2'].astype(str).groupby(df['value1']).agg(tups).reset_index()

答案 1 :(得分:1)

类似的事情也可能起作用:

  onSearchChange(searchValue: string) {
    setTimeout(() => {
      this.router.navigate(['/search', searchValue])
    }, 1000);
  }