小编JAS*_*oto的帖子

基于应用于不同列的多个逻辑条件的 Groupby DataFrame

我有这个数据框:

df = pd.DataFrame({'value':[1,2,3,4,2,42,12,21,21,424,34,12,42],
'type':['big','small','medium','big','big','big','big','medium','small','small','small','medium','small'],
'entity':['R','R','R','P','R','P','P','P','R','R','P','R','R']})

    value    type  entity
0       1     big       R
1       2   small       R
2       3  medium       R
3       4     big       P
4       2     big       R
5      42     big       P
6      12     big       P
7      21  medium       P
8      21   small       R
9     424   small       R
10     34   small       P
11     12  medium       R
12     42   small       R
Run Code Online (Sandbox Code Playgroud)

该操作包括按列“实体”分组,根据应用于列“值”和列“类型”的两个逻辑条件进行计数操作。就我而言,我必须计算“名称”列中大于 3 且不等于“类型”列中的“中”的值。结果必须是 R=3 和 P=4。在此之后,我必须将结果添加到原始数据框中,创建一个名为“Count”的新列。我知道这个操作可以用下面的代码在 R 中完成:

df[y!='medium' & value>3 , new_var:=.N,by=entity]
df[is.na(new_var),new_var:=0,]
df[,new_var:=max(new_var),by=entity]

Run Code Online (Sandbox Code Playgroud)

在之前的任务中,我只需要计算大于 3 的值作为条件。在那种情况下,结果是 R=3 …

python pandas

11
推荐指数
1
解决办法
246
查看次数

标签 统计

pandas ×1

python ×1