python - 将值标签/类别分配给 Pandas 中现有数据的最简单方法

标签 python pandas

我正在使用 SPSS 创建的数据集,其中可以将标签添加到数字变量,例如数字 1、2、3 可以属于 A、B、C 类别。

对于数据可视化,在 Pandas 中重新分配这些标签会很有用。

我已经能够使用下面的代码来实现这一点,但每次我想为现有数据创建新标签时定义一个新函数似乎过于复杂。

是否有更简单的方法来实现这一目标?

import pandas as pd 

sample_df = pd.DataFrame({'variable':[1,2,3,1,2,3],
                'value':[50, 55, 65, 55,33,66]})

def setCategory(c):
    if c['variable'] == 1:
        return 'A'
    elif c['variable'] == 2:
        return 'B'
    elif c['variable'] == 3:
        return 'C'

sample_df['Category'] = sample_df.apply(setCategory, axis =1)

最佳答案

您可以创建从数字到字母的映射并在 Series.map 中使用它:

mapping = dict(zip(range(1, 4), list('ABC')))

mapping
Out: {1: 'A', 2: 'B', 3: 'C'}

sample_df['variable'].map(mapping)
Out: 
0    A
1    B
2    C
3    A
4    B
5    C
Name: variable, dtype: object

关于python - 将值标签/类别分配给 Pandas 中现有数据的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45127919/

相关文章:

Python geopandas - 如何聚合(或进行其他一些统计)多边形内点的值?

python - 迁移期间的 Django NodeNotFoundError

python - pandas 中的聚合函数如何工作?

python - 循环图像,保存ID名称并将其相应地存储在数据框中

python - Python如何执行没有.py扩展名的文件?

Python 从字符串数组生成字典顺序输出

python - 加入每个组中的字符串并分配回原始 DataFrame

python - 为什么 swifter 比 vanilla df.apply 慢?

numpy - 对非常大的一维数组进行排序

python - 无法使用 urllib 和 urllib2 (python) 发送数据