1 回答
TA贡献2021条经验 获得超8个赞
这是一种潜在的方法,使用, 在和merge上自我加入。然后使用, 过滤掉两边用户相等的地方,最后用于输出。dateactionquerypivot_table
df_corr = (df.merge(df, on=['date', 'action'])
.query('user_x != user_y')
.pivot_table(index='user_x', columns='user_y', aggfunc='size'))
[出去]
user_y user_1 user_2 user_3
user_x
user_1 NaN 2.0 NaN
user_2 2.0 NaN 1.0
user_3 NaN 1.0 NaN
如果仅需要显示相关矩阵的下三角形,则可以NaN使用以下方法输出上半部分:
mask = np.triu_indices_from(df_corr)
df_corr.values[mask] = np.nan
[出去]
user_y user_1 user_2 user_3
user_x
user_1 NaN NaN NaN
user_2 2.0 NaN NaN
user_3 NaN 1.0 NaN
添加回答
举报