将具有相似列的两个pandas数据帧相乘

时间:2017-12-01 05:04:54

标签: python pandas matrix-multiplication

我的df1形状(5050, 63),其中每列保留video_id,行代表布尔值,用户是否观看过它。 我的df2形状为(63,2),第一行包含video_id,第二行包含video_duration

我想将两个数据帧相乘,以计算用户观看过的视频的整体持续时间。

出于这个原因,我调换了df2并转换为数值。

df_video_t = df_video_info.transpose()
new_header = df_video_t.iloc[0]
df_video_t = df_video_t[1:]
df_video_t.columns = new_header
df_video_t = df_video_t.convert_objects(convert_numeric=True)

然后,我尝试将df1乘以df2

df_1.mul(df_2_t, axis=0)

但我取代了乘法结果,我在每个细胞中都接受了NaN。

我的df1列和df2行未排序。 我该如何正确地进行乘法?

1 个答案:

答案 0 :(得分:1)

看起来您想要对值执行点积。这应该很快 -

r = df_1.values.dot(df_2_t.values.T)