所以我有一个非常简单的数据框:
values
1
1
1
2
2
我想添加一个新列,并为每一行分配它的唯一出现的总和,因此该表将如下所示:
values unique_sum
1 3
1 3
1 3
2 2
2 2
我在R中看过一些例子,但是对于python和pandas,我没有遇到过任何问题而且被卡住了。我可以使用.value_counts()
列出值计数,我已尝试groupby
例程,但无法理解它。
答案 0 :(得分:2)
只需使用value_counts
将您的列映射到其>>> x
A
0 1
1 1
2 1
3 2
4 2
>>> x['unique'] = x.A.map(x.A.value_counts())
>>> x
A unique
0 1 3
1 1 3
2 1 3
3 2 2
4 2 2
:
A
(我将列values
命名为values
而不是values
。x.values
不是列名称的绝佳选择,因为DataFrames有一个名为x['values']
的特殊属性,阻止您使用**Product** : **Quantity**
NF900 : 2
N1930CB : 2
N2120 : 1
NLPCR200: 2
N272 : 2
获取列 - 您必须使用SPLIT(text, delimiter, [split_around_each_character])
。)