我第一次使用pandas。我有一列包含调查回应的数据,它可以是非常同意,同意,不同意,非常不同意和都不知道。
以下是该列的describe()
和value_counts()
输出:
count 4996
unique 5
top Agree
freq 1745
dtype: object
Agree 1745
Strongly agree 926
Strongly disagree 918
Disagree 793
Neither 614
dtype: int64
我希望对这个问题与总体得分进行线性回归。然而,我感觉应该先将该列转换为类别变量,因为它本质上是有序的。这样做正确吗?如果是,我该如何操作?
我已尝试了以下方法:
df.EasyToUseQuestionFactor = pd.Categorical.from_array(df.EasyToUseQuestion)
print df.EasyToUseQuestionFactor
这会产生看起来大致正确的输出,但似乎类别顺序不对。我能指定排序方式吗?我需要指定排序方式吗?
这是我现在的代码剩余部分:
df = pd.read_csv('./data/responses.csv')
lm1 = ols('OverallScore ~ EasyToUseQuestion', data).fit()
print lm1.rsquared