我对Python很陌生,我很难复制一些在SAS和SPSS等标准统计软件包中很容易做到的事情。
基本上,我正在尝试计算变量“type”的频率表,该变量是分类的,但存储为1到5的整数。这些值中的每一个对应于不同的类别,例如1是Professional; 2是Manager等。我使用的是panda crosstab命令。 在进行交叉表以获取属于每个类别的数据框中的人数时,我希望列(或行)标题显示标签,例如“专业”而非实际价值,例如“1”以帮助解释。
我尝试创建一个字典,将每个键(例如我的值1-5)分配给每个值(即我的标签),但我无法找到如何修改交叉表命令来选择字典标签。 我相信必须有一个简单的方法来做到这一点! 谢谢你的帮助
答案 0 :(得分:0)
您可以使用字典更改列标题:
import pandas as pd
# Dictionary mapping category numbers to titles
category_map = {1: "Professional", 2: "Manager", 3: "Etc."}
# Dummy dataframe
df = pd.DataFrame({
1: ["Hello", "mister", "professional"],
2: ["Hello", "mister", "manager"],
3: ["Who", "are", "you?"]
})
# Dataframe before conversion
print df
# Replace category numbers with titles
new_columns = [category_map[category_number] for category_number in list(df.columns)]
df.columns = new_columns
# Dataframe after conversion
print df
哪个输出:
1 2 3
0 Hello Hello Who
1 mister mister are
2 professional manager you?
和
Professional Manager Etc.
0 Hello Hello Who
1 mister mister are
2 professional manager you?