我正在处理一个问题陈述,其中有两个数据帧 df1 和 df_main。
df_main如下:
users = ['id1','id1','id2','id2','id3','id3','id4']
keywords = ['k1','k1', 'k2','k2','k2','k3','k3']
quantity = [10,10,2,2,2,4,4]
duration = [1,1,3,3,3,2,2]
df_main = pd.DataFrame(list(zip(users, keywords, quantity, duration)), columns = ['users','keywords','quantity','duration'])
df_main 基本上是一个包含 user_id 信息、相应关键字以及数量和持续时间列的数据框
df1 有一列用于 user_id,其余列用于 df_main 中的所有关键字。使用 main_df 作为参考,每个 user_id 和关键字对都标记为 1,否则保留为 0。
这是 df1 的代码:
columns = ['USER_ID','k1','k2','k3']
users = ['id1','id2','id3','id4']
values1 = [1,0,0,0]
values2 = [0,1,1,0]
values3 = [0,0,1,1]
df1 = pd.DataFrame(list(zip(users, values1, values2, values3)), columns = columns)
现在我想要以下数据框:
其中total_quantity和total_duration是每个id和关键字对的数量和持续时间值的总和。
该代码正在运行,但它真的很慢,我真的想摆脱循环。如果有人能向我展示一种更优化的方法,我将不胜感激。
万千封印
相关分类