Python 3.x 添加唯一计数列
给定以下数据帧:Python 3.x 添加唯一计数列,python-3.x,pandas,Python 3.x,Pandas,给定以下数据帧: import pandas as pd df = pd.DataFrame( {'A' : ['foo', 'foo', 'foo', 'foo', 'bar', 'bar', 'bar', 'bar'], 'B' : [2, 4, 4, 2, 5, 4, 3, 2]}) df A B 0 foo 2 1 foo 4 2 foo 4 3 foo 2 4 bar
import pandas as pd
df = pd.DataFrame(
{'A' : ['foo', 'foo', 'foo', 'foo',
'bar', 'bar', 'bar', 'bar'],
'B' : [2, 4, 4, 2, 5, 4, 3, 2]})
df
A B
0 foo 2
1 foo 4
2 foo 4
3 foo 2
4 bar 5
5 bar 4
6 bar 3
7 bar 2
我希望通过lambda x函数获得每组“a”中“B”的唯一值计数列(“C”):
A B C
0 foo 2 2
1 foo 4 2
2 foo 4 2
3 foo 2 2
4 bar 5 1
5 bar 4 1
6 bar 3 1
7 bar 2 1
提前谢谢 如果PC对你的目标是正确的,也许
>>> df["C"] = df.groupby(["A","B"])["A"].transform("count")
>>> df
A B C
0 foo 2 2
1 foo 4 2
2 foo 4 2
3 foo 2 2
4 bar 5 1
5 bar 4 1
6 bar 3 1
7 bar 2 1
你会给你想要的吗?我们是按(A,B)对分组的
可爱的历史片段:这本来是我做的,但后来我再次尝试,发现我不需要
[“A”]
。但是它第二次没有它的原因是当时我有C
列,所以代码可以执行一些操作。。(叹气)如何为“bar”组中的B获得1个唯一值?@DSM,我也这么认为,我认为这是每个组中每个元素的计数,第一组中有两个2和两个4,以及一个5和一个4等等。。在接下来的时间里。像df.groupby(“A”)[“B”].value\u counts()
我想你已经搞定了。我必须df[“C”]=df.groupby([“A”,“B”])[“A”])。转换(“count”)
以避免值错误:传递的项数错误0,位置意味着1
@padraickenningham:aargh,我知道为什么。我把它放回去。