pandas 条件分组和计数值
Posted
技术标签:
【中文标题】pandas 条件分组和计数值【英文标题】:pandas conditional group-by and count values 【发布时间】:2020-07-05 05:26:14 【问题描述】:我想计算'a'标签的相同'aa'值对应'b'标签的'bb'值的数量。这是问题的简化版本。
例如,当职位为程序员时,与“计算机技能”对应的“Python”值的数量(工作的“aa”值作为“a”标签)。
我运行以下代码,但它不起作用,对吧。结果应该是 2 'bb' 对应于 2 'aa'。
import numpy as np
import pandas as pd
data= 'id':[1, 1, 1, 2, 2, 2, 3, 3, 3, 3],
'Label':['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'b', 'c'],
'Values':['aa', 'bb', 'cc', 'dd', 'ee', 'cc', 'aa', 'bb', 'bbb', 'cc']
dataset=pd.DataFrame(data=data)
d=dataset.groupby(by=['Label'])
for k, value in d:
print(value[value.Label=='a'].groupby('Values').count())
【问题讨论】:
在内部循环中,您只过滤到 Label='a'。如果你定义了标签和值之间匹配的逻辑,那么帮助会更容易 【参考方案1】:您可以执行以下操作:
import pandas as pd
data= 'id':[1, 1, 1, 2, 2, 2, 3, 3, 3, 3],
'Label':['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'b', 'c'],
'Values':['aa', 'bb', 'cc', 'dd', 'ee', 'cc', 'aa', 'bb', 'bbb', 'cc']
dataset=pd.DataFrame(data=data)
d=dataset.groupby(by=['Label'])
for k, value in d:
print(value.loc[value.Label=='a','Values'].value_counts())
【讨论】:
就是返回之前的结果。我想获得 'bb' 值的数量。 我想我不明白你到底想做什么。你介意再举一个例子吗?以上是关于pandas 条件分组和计数值的主要内容,如果未能解决你的问题,请参考以下文章