Python 在熊猫中查找并运行总数

Python 在熊猫中查找并运行总数,python,pandas,Python,Pandas,我在熊猫中有3个数据帧: 1)用户兴趣: 以“用户”作为id,“兴趣”作为兴趣: 2)相似性评分: 将“用户”作为唯一id匹配用户感兴趣的id: 3)相似性\u总数: “兴趣”是用户互联网中所有独特兴趣的列表: 我需要做什么: 步骤1:从相似性表中查找用户兴趣 步骤2:从用户兴趣中选取对应的用户,并将其与相似性评分中的用户进行匹配 步骤3:从相似度评分中提取相应的相似度评分,并将其添加到相似度评分总数中相应的兴趣中 最终目标是将所有对主题感兴趣的用户的相似度得分相加。图表可能有助于: 我

我在熊猫中有3个数据帧:

1)用户兴趣

以“用户”作为id,“兴趣”作为兴趣:

2)相似性评分:

将“用户”作为唯一id匹配用户感兴趣的id:

3)相似性\u总数:

“兴趣”是用户互联网中所有独特兴趣的列表:

我需要做什么:

步骤1:从相似性表中查找用户兴趣

步骤2:从用户兴趣中选取对应的用户,并将其与相似性评分中的用户进行匹配

步骤3:从相似度评分中提取相应的相似度评分,并将其添加到相似度评分总数中相应的兴趣中

最终目标是将所有对主题感兴趣的用户的相似度得分相加。图表可能有助于:


我知道这可以在一条线上完成,但我还没有做到。如果有人能给我指出正确的方向,那就太棒了。谢谢

我不确定您已经编写了什么代码,但您是否尝试过类似的合并方法?但这不是一行

# Merge user_interest with similarity_total dataframe
ui_st_df = user_interests.merge(similarity_total, on='interest',how='left').copy()

# Merge ui_st_df with similarity_score dataframe
ui_ss_df = ui_st_df.merge(similarity_score, on='user',how='left').copy()

我不确定您已经编写了什么代码,但您是否尝试过类似的合并方法?但这不是一行

# Merge user_interest with similarity_total dataframe
ui_st_df = user_interests.merge(similarity_total, on='interest',how='left').copy()

# Merge ui_st_df with similarity_score dataframe
ui_ss_df = ui_st_df.merge(similarity_score, on='user',how='left').copy()

IIUC,我想你需要:

user_interest['similarity_score'] = user_interest['users'].map(similarity_score.set_index('user')['similarity_score'])

similarity_total = user_interest.groupby('interest', as_index=False)['similarity_score'].sum()
输出:

            interest  similarity_score
0           Big Data          1.000000
1          Cassandra          1.338062
2              HBase          0.338062
3              Hbase          1.000000
4               Java          1.154303
5            MongoDB          0.338062
6              NoSQL          0.338062
7           Postgres          0.338062
8             Python          0.154303
9                  R          0.154303
10             Spark          1.000000
11             Storm          1.000000
12     decision tree          0.000000
13            libsvm          0.000000
14  machine learning          0.000000
15             numpy          0.000000
16            pandas          0.000000
17       probability          0.000000
18        regression          0.000000
19      scikit-learn          0.000000
20             scipy          0.000000
21        statistics          0.000000
22       statsmodels          0.000000

IIUC,我想你需要:

user_interest['similarity_score'] = user_interest['users'].map(similarity_score.set_index('user')['similarity_score'])

similarity_total = user_interest.groupby('interest', as_index=False)['similarity_score'].sum()
输出:

            interest  similarity_score
0           Big Data          1.000000
1          Cassandra          1.338062
2              HBase          0.338062
3              Hbase          1.000000
4               Java          1.154303
5            MongoDB          0.338062
6              NoSQL          0.338062
7           Postgres          0.338062
8             Python          0.154303
9                  R          0.154303
10             Spark          1.000000
11             Storm          1.000000
12     decision tree          0.000000
13            libsvm          0.000000
14  machine learning          0.000000
15             numpy          0.000000
16            pandas          0.000000
17       probability          0.000000
18        regression          0.000000
19      scikit-learn          0.000000
20             scipy          0.000000
21        statistics          0.000000
22       statsmodels          0.000000

谢谢,真是太好了helpful@SandyLee不客气。注意安全,保持健康。谢谢你,这真是太好了helpful@SandyLee不客气。注意安全,保持健康。谢谢,那真的很有帮助。谢谢,那真的很有帮助