![](/img/trans.png)
[英]Check if Python list elements are in a Pandas dataframe row and append to a new column
[英]Check if elements from a Dataframe column are in another Pandas dataframe row and append to a new column
我有一个这样的 DataFrame:
卡萨 | 名称 |
---|---|
独舞 | Paleta De Padel 阿迪达斯 Metalbone CTRL |
独舞 | Zapatillas Running Under Armour Charged Stam... |
独舞 | Rompeviento Con Capucha 锐步 Woven Azu |
独舞 | Remera Michael Jordan 芝加哥公牛队 |
和Df2
:
帕拉布拉 | 马卡报 |
---|---|
水线 | 水线 |
阿德尼斯 | 阿德尼斯 |
广告 | 阿德尼斯 |
安德玛 | 安德玛 |
约旦 | 耐克 |
阿迪达斯 | 阿迪达斯 |
锐步 | 锐步 |
如何检查df['Name']
每一行,查看该行是否包含Df2['Palabra']
的值,在这种情况下获取Df2['Marca']
的值并将其放入新列?。 结果应该是这样的:
卡萨 | 名称 | 马卡报 |
---|---|---|
独舞 | Paleta De Padel 阿迪达斯 Metalbone CTRL | 阿迪达斯 |
独舞 | Zapatillas Running Under Armour Charged Stam... | 安德玛 |
独舞 | Rompeviento Con Capucha 锐步 Woven Azu | 锐步 |
独舞 | Remera Michael Jordan 芝加哥公牛队 | 耐克 |
数据:
df
:
{'Casa': ['Solo Deportes', 'Solo Deportes', 'Solo Deportes', 'Solo Deportes'],
'Name': ['Paleta De Padel Adidas Metalbone CTRL',
'Zapatillas Running Under Armour Charged Stamin...',
'Rompeviento Con Capucha Reebok Woven Azu',
'Remera Michael Jordan Chicago Bulls']}
Df2
:
{'Palabra': ['Acqualine', 'Addnice', 'Adnnice', 'Under Armour', 'Jordan', 'Adidas', 'Reebok'],
'Marca': ['Acqualine', 'Addnice', 'Addnice', 'Under Armour', 'Nike', 'Adidas', 'Reebok']}
一个简单的解决方案是在生成器表达式中使用iterrows
, next
迭代Df2
并检查是否出现匹配项:
df1['Marca'] = df1['Name'].apply(lambda name: next((r['Marca'] for _, r in Df2.iterrows() if r['Palabra'] in name), float('nan')))
Output:
Casa Name Marca
0 Solo Deportes Paleta De Padel Adidas Metalbone CTRL Adidas
1 Solo Deportes Zapatillas Running Under Armour Charged Stamin... Under Armour
2 Solo Deportes Rompeviento Con Capucha Reebok Woven Azu Reebok
3 Solo Deportes Remera Michael Jordan Chicago Bulls Nike
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.