Python 在熊猫中查找并运行总数
我在熊猫中有3个数据帧: 1)用户兴趣: 以“用户”作为id,“兴趣”作为兴趣: 2)相似性评分: 将“用户”作为唯一id匹配用户感兴趣的id: 3)相似性\u总数: “兴趣”是用户互联网中所有独特兴趣的列表: 我需要做什么: 步骤1:从相似性表中查找用户兴趣 步骤2:从用户兴趣中选取对应的用户,并将其与相似性评分中的用户进行匹配 步骤3:从相似度评分中提取相应的相似度评分,并将其添加到相似度评分总数中相应的兴趣中 最终目标是将所有对主题感兴趣的用户的相似度得分相加。图表可能有助于:Python 在熊猫中查找并运行总数,python,pandas,Python,Pandas,我在熊猫中有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不客气。注意安全,保持健康。谢谢,那真的很有帮助。谢谢,那真的很有帮助