熊猫-将字典键和值映射到新列

时间:2020-10-03 20:30:42

标签: python pandas

我有一个df:

 #   Column                        Non-Null Count  Dtype  
---  ------                        --------------  -----  
...
 13  team                         3572 non-null   object 
...

带有“团队”列:

teams = [
    'Grêmio','Internacional', 'Palmeiras', 'Ceará', 
    'Bragantino', 'Corinthians', 'Botafogo', 'Fluminense', 
    'Flamengo', 'Athlético-PR','Coritiba': 'São Paulo',
    'Bahia', 'Sport', 'Fortaleza', 'Atlético-GO',
    'Goiás', 'Santos', 'Atlético-MG', 'Vasco']

具有以下作为唯一值的项目,重复了多次:

next_round = {
    'Grêmio':'Internacional', 'Palmeiras': 'Ceará', 
    'Bragantino': 'Corinthians', 'Botafogo': 'Fluminense', 
    'Flamengo': 'Athlético-PR','Coritiba': 'São Paulo',
    'Bahia': 'Sport', 'Fortaleza': 'Atlético-GO',
    'Goiás': 'Santos', 'Atlético-MG': 'Vasco'}

现在,根据下面的字典:

df['home_dummy']

我想:

  1. 创建新列df['home_dummy']
  2. 如果df['team']行值为字典key,则将值'home'分配给df['home_dummy']
  3. 如果df['team]行值为字典value,则将值'away'分配给key, value in next_round.items()

team home_dummy / ... Grêmio home Internacional away Palmeiras home Vasco away Coritiba home ...

示例:

pandas

databases的实现方式是什么?

1 个答案:

答案 0 :(得分:2)

import pandas as pd

df = pd.DataFrame([['Grêmio'],['Internacional'],['Palmeiras'],['Vasco'],['Coritiba']],columns = ['teams'])
next_round = {
    'Grêmio':'Internacional', 'Palmeiras': 'Ceará', 
    'Bragantino': 'Corinthians', 'Botafogo': 'Fluminense', 
    'Flamengo': 'Athlético-PR','Coritiba': 'São Paulo',
    'Bahia': 'Sport', 'Fortaleza': 'Atlético-GO',
    'Goiás': 'Santos', 'Atlético-MG': 'Vasco'}
df['home_dummy'] = ['home' if x in next_round.keys() else 'away' for x in df['teams'] ]
df

   teams    home_dummy
0   Grêmio  home
1   Internacional   away
2   Palmeiras   home
3   Vasco   away
4   Coritiba    home