将特定列的值更改为 value_count()

数据挖掘 Python 熊猫 数据框
2022-02-26 17:05:47

假设我有以下数据集。我需要用 value_count() 替换特定列的值。我看到很少有帖子是针对整个数据集完成的。我需要为特定的专栏做这件事。

data = pd.DataFrame({'Item 1': ['apple', 'potato', 'cheese', 'banana', 'cheese', 'banana', 'cheese', 'potato', 'egg'],
          'Item 2': [1,5,2,7,8,4,9,0,3],
          'Item 3': ['a','b','a','c','d','c','e','e','e']})

如何用 value_counts() 替换“项目 1”列的值?

我尝试了以下代码。

data.apply(lambda x: x.map(x.value_counts()))

但这适用于整个数据。我需要为一栏做这件事。

结果值应采用以下形式 -

“奶酪”:3

“土豆”:2

1个回答

试试这个:

# Do value_count outside of loop to avoid doing it multiple times
vc_item1 = data['Item 1'].value_counts()

data['Item 1'].apply(lambda x: vc_item1[x])

但是,如果正确理解您的评论,您需要每个单元格中的键和值:

vc = data['Item 1'].value_counts()

data['Item 1'].apply(lambda x: str(x) + ':' + str(vc[(x)]))