【发布时间】:2017-06-23 16:14:06
【问题描述】:
我有 2 个pandas dataframes:
df1 = pd.DataFrame({'Model': [1,2,3,4,5], 'Color': ['Orange', 'Red', 'Black', 'Purple', 'Pink']})
Color Model
Orange 1
Red 2
Black 3
Purple 4
Pink 5
df2 = pd.DataFrame({'Color': ['Orange', 'Green', 'Purple', 'Black', 'Indigo'], 'Drink': ['Soda', 'Juice', 'Water', 'Soda', 'Lemonade'], 'Model': [1,1,4,6,8]})
Color Drink Model
Orange Soda 1
Green Juice 1
Purple Water 4
Black Soda 6
Indigo Lemonade 8
我正在尝试从df2 创建一个饮料list,其颜色和型号与来自df1 的颜色和型号相匹配。对于上面的例子,输出应该是:
['Soda', 'Water']
我将如何做到这一点?我试过了:
drinks = []
for x in df1.Model:
for y in df2.Model:
for j in df1.Color:
for k in df2.Color:
if x == y and j == k:
drinks.append(df2.loc[df2['Model'] == x, 'Drink'].iloc[0])
返回:
['Soda', 'Soda', 'Soda', 'Soda', 'Soda', 'Soda', 'Water', 'Water', 'Water']
我想我已经接近但不知道如何摆脱重复。
【问题讨论】:
标签: list python-3.x dataframe