包含 Pandas 的新列中包含列表的值计数 [重复]
Posted
技术标签:
【中文标题】包含 Pandas 的新列中包含列表的值计数 [重复]【英文标题】:Value Count with List in New Column that Comprised it Pandas [duplicate] 【发布时间】:2020-08-02 23:23:47 【问题描述】:我有一个数据框,其中包含拨打各种号码的个人。因此:
Person Called
A 123
B 123
C 234
我需要创建一个新的数据框,列出拨打该号码的人的列表和计数。像这样:
Persons Called Count
A, B 123 2
C 234 1
我很确定我可以创建一个 for 循环来计算次数并将它们附加到列表中,但我想知道是否有更有效的方法可以在没有 for 循环的情况下执行此操作。如果格式不正确,请见谅。我是论坛的新手。
【问题讨论】:
【参考方案1】:将name aggregations 与GroupBy.agg
一起使用:
df1 = (df.groupby('Called')
.agg(Persons = ('Person',','.join),
Count=('Person','size'))
.reset_index())
print (df1)
Called Persons Count
0 123 A,B 2
1 234 C 1
因为只能处理一列,所以在groupby
之后使用带有元组和列的替代方法:
df1 = (df.groupby('Called')['Person']
.agg([('Persons', ','.join),
('Count','size')])
.reset_index())
print (df1)
Called Persons Count
0 123 A,B 2
1 234 C 1
【讨论】:
@ansev - 如果与named aggregation
一起使用它会丢失第一列。以上是关于包含 Pandas 的新列中包含列表的值计数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
将来自一个数据框的值合并到 Pandas 中的新列中[重复]
pandas 中的新列 - 通过应用列表 groupby 将系列添加到数据框
Pandas df 操作:如果其他列行重复,则带有值列表的新列 [重复]