我刚开始使用Pandas,我了解到处理数据时,通常的做法是将数据分组,创建虚拟变量,甚至在DataFrame中创建新列。然而,我遇到了一些代码行,不明白它们做了什么。这些代码的目的是将一个分类列的数据按年龄分成3列。
ratings_df.loc[(ratings_df['age'] <= 40), 'age_group'] = '40 years and younger'
ratings_df.loc[(ratings_df['age'] > 40) & (ratings_df['age'] < 57), 'age_group'] = 'between 40 and 57 years'
ratings_df.loc[(ratings_df['age'] >= 57), 'age_group'] = '57 years and older'
它并没有创建一个新列或一个新DataFrame,但后来在回归模型中与另一个独立变量’beauty’一起用于训练数据
lm = ols('beauty ~ age_group', data = ratings_df).fit()
它做了什么?
回答:
可以更容易地将这些代码行视为如下形式:
condition = (ratings_df['age'] <= 40)
column_name = 'age_group'
new_value = '40 years and younger'
ratings_df.loc[condition, column_name] = new_value
简而言之,对于ratings_df['age'] <= 40
为真的每一行,名为age_group
的列被设置为新值"40 years and younger"
。