Pandas将字典键和值映射到新列

2024-09-29 19:19:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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['team']行值是字典key,则将值“home”分配给df['home_dummy']
  3. 如果df['team]行值是字典value,则将值'away'分配给df['home_dummy']

key, value in next_round.items()

例如:

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

做这件事的方法是什么


Tags: columnsdfhometeamdummygrmioatl
1条回答
网友
1楼 · 发布于 2024-09-29 19:19:13
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

相关问题 更多 >

    热门问题