如何根据value_counts()条件替换pandas dataframe列中的值?

瑞诗凯诗富拉里

我有一个数据框,其中一列本质上是分类的,此列中的许多值都在重复,但是有许多值的计数非常小,即一位数,而其他值则是3或4位。我想用“其他”值替换此分类列中所有值小于10的值。下面,我尝试通过示例数据框来模仿我的问题。

数据帧示例代码如下:

l1,l2 = [1,2,3,4,5, 6 ,7, 8,9,10], ['aa', 'bb', 'aa', 'bb', 'bb', 'ee', 'bb','gg','gg','gg']
dataframe = pd.DataFrame(zip(l1,l2), columns =['l1','l2'])
dataframe.l2.value_counts()
11 l2
1个 'aa'
2 'bb'
3 'aa'
4 'bb'
5 'bb'
6 '是'
7 'bb'
8 'gg'
9 'gg'
10 'gg'

现在,如果我为“ l2”列打印value_counts(),我将获得“ l2”列中每个值的计数。

dataframe.l2.value_counts()

输出为: 价值计数

我的问题是,如何用值“ other”替换值“ <3”的此“ l2”列中的所有那些值,我期望的数据帧是:

11 l2
1个 '其他'
2 'bb'
3 '其他'
4 'bb'
5 'bb'
6 '其他'
7 'bb'
8 'gg'
9 'gg'
10 'gg'

如您所见,此处所有值'aa'和'ee'的实例都被替换为'other',因为它们的值计数小于3。如何执行此操作?

耶斯列尔

用于Series.mapSeries.value_counts每个组的重复计数,然后通过Series.mask设置值DataFrame.loc

mask = dataframe.l2.map(dataframe.l2.value_counts()) < 3
#alternative
#mask = dataframe.groupby('l2').l2.transform('size') < 3
dataframe.l2 =  dataframe.l2.mask(mask, 'other')
#alternative
#dataframe.loc[mask, 'l2'] = 'other'

print (dataframe)
   l1     l2
0   1  other
1   2     bb
2   3  other
3   4     bb
4   5     bb
5   6  other
6   7     bb
7   8     gg
8   9     gg
9  10     gg

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据python pandas数据帧中的value_counts将二进制列(1,0)替换为(0,1)?

根据pandas DataFrame中的条件替换列中的值

根据列value_counts(pandas)过滤数据框

Pandas DataFrame:根据条件替换列中的所有值

如何在Pandas Dataframe中的所有值中进行value_counts

如何根据条件替换pandas DataFrame中的值?

使用 dataframe pandas 中的 value_counts 创建新列

如何根据特定条件替换Pandas Dataframe中特定列的特定值?

根据条件替换Pandas Dataframe中的值

如何将 value_counts() 值附加到 Pandas 中的新列

Pandas 根据条件替换列中的值

如何根据前10个value_counts的数量从DataFrame中获取行?

根据pandas DataFrame中的列值有条件地替换多个列

根据value_counts()更改熊猫数据框中的值

使用 value_counts 和多列过滤 Pandas DataFrame?

如何以正确的顺序获取pandas中的value_counts()的返回值

替换pandas DataFrame中的列值

根据值在Pandas中删除DataFrame列

如何替换DataFrame列中的空值?

如何根据特定条件用列表值替换Pandas Dataframe中的元素?

如何在Python Pandas的dataframe列中替换多个值?

计算 A 列中相同值的 B 列 value_counts

如何转换pandas Dataframe中的列值?

Pandas 数据框根据条件替换列中的值

如何根据Pandas DataFrame中的条件添加每组重复值的新列?

如何在pandas数据框列中找到value_counts()的长度大于1的长度

Python Panda Dataframe 替换列中的值

替换DataFrame PYTHON中的列内的值

替换 Pyspark Dataframe 列中的空值