【发布时间】:2018-10-19 17:13:58
【问题描述】:
我看到了两个数据框。一个包含不同校园食物类型的学校食物评级。第一个df是学生评分,第二个是老师评分。结果的顺序和df的长度不能保证。也就是说,我需要将两者结合在一起。
import pandas as pd
student_ratings = pd.DataFrame({'food': ['chinese', 'mexican', 'american', 'chinese', 'mexican', 'american'],
'campus': [37, 37, 37, 25, 25, 25],
'student_rating': [97, 90, 83, 96, 89, 82]})
teacher_ratings = pd.DataFrame({'food': ['chinese', 'mexican', 'american', 'chinese', 'mexican', 'american', 'chinese', 'mexican', 'american'],
'campus': [25, 25, 25, 37, 37, 37, 45, 45, 45],
'teacher_rating': [87, 80, 73, 86, 79, 72, 67, 62, 65]})
#...
# SOMETHING LIKE WHAT I'M AFTER...
combined_ratings = pd.DataFrame({'food': ['chinese', 'mexican', 'american', 'chinese', 'mexican', 'american', 'chinese', 'mexican', 'american'],
'campus': [25, 25, 25, 37, 37, 37, 45, 45, 45],
'student_rating': [96, 89, 82, 97, 90, 83, Nan, NaN, NaN],
'teacher_rating': [87, 80, 73, 86, 79, 72, 67, 62, 65]})
我基本上想添加列(可能不止一列),但我需要通过food AND campus 匹配所有内容
【问题讨论】:
-
简单合并
teacher_ratings.merge(student_ratings,how='outer')