我正在使用 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/