【问题标题】:Mapping DataFrame column with other DataFrame将 DataFrame 列与其他 DataFrame 映射
【发布时间】:2019-06-24 21:27:27
【问题描述】:

我有一个 CSV 文件,其中包含从 2010 年初到 2018 年的球员历史排名。排名每周都会刷新,因此一个文件中有 54 x 8 个排名。有日期,排名位置,玩家ID和积分等列。玩家 ID 是每个玩家的特定编号。我确实有第二个带有玩家 ID、玩家姓名、玩家姓氏的 csv。我想将第一个数据框中的玩家 ID 映射到第二个 csv 中玩家的姓名和姓氏。

我刚刚用<to_dict 创建了第二个csv 的字典> 我试图用<.map(dict1)><from_dict> 映射它,但没有成功。

data_players = pd.read_csv(filepath, engine="python", sep=";", 
keep_default_na=False)
data_rank = pd.read_csv(filepath2, engine="python", sep=",", 
keep_default_na=False)

data_players = data_players.set_index('player_id')
dict1 = data_players.to_dict('index')
data_rank['player'] = pd.DataFrame.from_dict(dict1)

我的数据是这样的

ranking_date     int64
rank             int64
points          object
player          object
dtype: object

        ranking_date  rank points                      player
player
103819      20100104     1  10550    {'name_list': 'Federer'}
104745      20100104     2   9205      {'name_list': 'Nadal'}
104925      20100104     3   8310   {'name_list': 'Djokovic'}
104918      20100104     4   7030     {'name_list': 'Murray'}
105223      20100104     5   6785  {'name_list': 'Del Potro'}

我希望找到解决方案,我认为这很简单但我只是在学习python。

【问题讨论】:

    标签: python-3.x pandas dataframe dictionary object


    【解决方案1】:

    不要用dict,在这里用

    Df= data_players.merge(data_rank,left_on=“player_id”, right_on=“player_id”)
    

    【讨论】:

      猜你喜欢
      • 2021-06-12
      • 2018-05-16
      • 2022-08-15
      • 2021-12-31
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 2021-03-25
      相关资源
      最近更新 更多