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

8位博尔赫斯

我有一个df:

Int64Index: 3572 entries
Data columns (total 58 columns): 

带有“团队”列:

 #   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'}

我想要:

  1. 创建一个新列 df['home_dummy']
  2. df['home_dummy']如果df['team']行值是字典则将值“ home”分配给key
  3. df['home_dummy']如果df['team]行值是字典则将值“ away”分配给value

key, value in next_round.items()

例:

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

什么是pandas这样做的呢?

venky__
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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章