我需要一些关于在DataFrame中计算频率的指导。
基本上,我需要计算一列的出现频率,根据另一列的一个简单条件:,用找到的百分比创建一个新列
例如:
索引 | Col1 | tbody> | |
---|---|---|---|
0 | 一个 | 49 | |
1 | a | 51 | |
2 | b | 49 | |
3 | b | 49 | |
4 | c | 51 | |
5 | c | 49 | |
6 | c | 49 | |
7 | c | 51 |
assign
会为您完成这项工作。重要的是设置";枢轴;列作为索引优先:
import pandas as pd
df = pd.DataFrame({"col1":["a", "a", "b", "b", "c", "c", "c", "c"], "col9":[49, 51, 49, 49, 51, 49, 49, 49]})
grouping_index = ["col1"]
df = df.set_index(grouping_index)
df = df.assign(percentage=df.groupby(grouping_index)[["col9"]].agg(lambda x: sum(x>50)/len(x))).reset_index()