我正在使用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)
答案 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