最简单的方法是为Pandas中的现有数据分配值标签/类别

时间:2017-07-16 11:15:03

标签: 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)

1 个答案:

答案 0 :(得分:2)

您可以创建从数字到字母的映射,并在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