如果列中存在任何数字,则将总值指定为 1,否则指定为 0

我有一个与下面的示例类似的数据集:


| id | old_a | old_b | new_a | new_b |

|----|-------|-------|-------|-------|

| 6  | 3     | 0     | 0     | 0     |

| 6  | 9     | 0     | 2     | 0     |

| 13 | 3     | 0     | 0     | 0     |

| 13 | 37    | 0     | 0     | 1     |

| 13 | 30    | 0     | 0     | 6     |

| 13 | 12    | 2     | 0     | 0     |

| 6  | 7     | 0     | 2     | 0     |

| 6  | 8     | 0     | 0     | 0     |

| 6  | 19    | 0     | 3     | 0     |

| 6  | 54    | 0     | 0     | 0     |

| 87 | 6     | 0     | 2     | 0     |

| 87 | 11    | 1     | 1     | 0     |

| 87 | 25    | 0     | 1     | 0     |

| 87 | 10    | 0     | 0     | 0     |

| 9  | 8     | 1     | 0     | 0     |

| 9  | 19    | 0     | 2     | 0     |

| 9  | 1     | 0     | 0     | 0     |

| 9  | 34    | 0     | 7     | 0     |

我为上表提供了这个示例数据集:


data=[[6,3,0,0,0],[6,9,0,2,0],[13,3,0,0,0],[13,37,0,0,1],[13,30,0,0,6],[13,12,2,0,0],[6,7,0,2,0],

                                 [6,8,0,0,0],[6,19,0,3,0],[6,54,0,0,0],[87,6,0,2,0],[87,11,1,1,0],[87,25,0,1,0],[87,10,0,0,0],

                                [9,8,1,0,0],[9,19,0,2,0],[9,1,0,0,0],[9,34,0,7,0]]

data= pd.DataFrame(data,columns=['id','old_a','old_b','new_a','new_b'])

我想查看每个 id 的“new_a”和“new_b”列,即使每个 id 的这两列中存在单个值,我也想将其计为 1,而不管任何值出现的次数并分配如果不存在任何值,则为 0。例如,如果我查看 id '9',new_a 中有两个不同的值,但我想将其计为 1。同样,对于 id '13',new_a 中没有值,所以我想指定为 0。


我的最终输出应该是这样的:


| id | new_a | new_b |

|----|-------|-------|

| 6  | 1     | 0     |

| 9  | 1     | 0     |

| 13 | 0     | 1     |

| 87 | 1     | 0     |

我最终想计算使用 new_a 和 new_b 的客户端百分比。所以从上表来看,75%的客户端使用new_a,25%的客户端使用new_b。我是 python 的初学者,不知道如何继续。


心有法竹
浏览 93回答 1
1回答

ITMISS

使用GroupBy.any, 因为0像 s 一样进行处理False并将输出布尔值转换为整数:df = data.groupby('id')[['new_a','new_b']].any().astype(int).reset_index()print (df)   id  new_a  new_b0   6      1      01   9      1      02  13      0      13  87      1      0mean对于上述输出的使用百分比:s = df[['new_a','new_b']].mean().mul(100)print (s)new_a    75.0new_b    25.0dtype: float64
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python