Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 添加唯一计数列_Python 3.x_Pandas - Fatal编程技术网

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,我知道为什么。我把它放回去。