编辑以显示原始数据帧示例:
df.head(4)
shop category subcategory season
date
2013-09-04 abc weddings shoes winter
2013-09-04 def jewelry watches summer
2013-09-05 ghi sports sneakers spring
2013-09-05 jkl jewelry necklaces fall
我已经使用get_dummies()成功生成了以下数据框:
wedding_seasons = pd.get_dummies(df.loc[df['category']=='weddings',['category','season']],prefix = '', prefix_sep = '' )
wedding_seasons.head(3)
weddings winter summer spring fall
71654 1.0 0.0 1.0 0.0 0.0
72168 1.0 0.0 1.0 0.0 0.0
72080 1.0 0.0 1.0 0.0 0.0
上面的目标是帮助评估整个季节的婚礼频率,因此我使用
corr()
生成以下结果: weddings fall spring summer winter
weddings NaN NaN NaN NaN NaN
fall NaN 1.000000 0.054019 -0.331866 -0.012122
spring NaN 0.054019 1.000000 -0.857205 0.072420
summer NaN -0.331866 -0.857205 1.000000 -0.484578
winter NaN -0.012122 0.072420 -0.484578 1.000000
我不确定婚礼列为什么会生成NaN值,但是我的直觉是它源自我最初创建
wedding_seasons
的方式。任何指导将不胜感激,以便我可以正确地评估列相关性。 最佳答案
我认为您不希望在这里看到“相关性”。
数据框wedding_seasons
中的所有列均包含浮点值;但是,如果我的猜想是正确的,则原始数据帧df
中的行包含类似事务记录的内容,其中每一行对应一个人。
如果我不正确,请告诉我,但我将继续进行推理。
关联将直观地衡量值的趋势在同一观察值内一起/相对变化(例如,如果X和Y呈负相关,那么当我们看到X高于其均值时,我们希望Y出现在其均值以下) )。
但是,这里的数据是,如果一个事务是summer
,则绝对不能同时是winter
。创建wedding_seasons
时,Pandas正在创建虚拟变量,这些虚拟变量在计算相关矩阵时将被视为浮点值。由于任何一行都不可能同时包含两个1.0
条目,因此很明显,您得到的相关矩阵将在每个地方都具有负条目。