假设我有一个pandas数据框,其中包含不同度量属性的列和相应的度量值。

ID     Parameter     Value
0      'A'           4.3
1      'B'           3.1
2      'C'           8.9
3      'A'           2.1
4      'A'           3.9
.      .             .
.      .             .
.      .             .
100    'B'           3.8

如何筛选此数据帧,使其仅具有出现次数超过x次的度量?例如,对于这个数据帧,我希望获得所有测量值超过5次的行(假设参数“a”和“b”出现5次以上),以获得如下所示的数据帧。
ID     Parameter     Value
0      'A'           4.3
1      'B'           3.1
3      'A'           2.1
.      .             .
.      .             .
.      .             .
100    'B'           3.8

最佳答案

您可以使用-

v = df.Parameter.value_counts()
df[df.Parameter.isin(v.index[v.gt(5)])]

例如,其中value_counts(获取具有两个以上读数的所有项)-
df

   ID Parameter  Value
0   0         A    4.3
1   1         B    3.1
2   2         C    8.9
3   3         A    2.1
4   4         A    3.9
5   5         B    4.5

v = df.Parameter.value_counts()
v

A    3
B    2
C    1
Name: Parameter, dtype: int64

df[df.Parameter.isin(v.index[v.gt(2)])]

   ID Parameter  Value
0   0         A    4.3
3   3         A    2.1
4   4         A    3.9

关于python - 如何在Pandas数据框中选择出现多次值的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48628417/

10-12 14:34
查看更多