【问题标题】:How to extract column header from matching row value in a separate DataFrame and create a new column based off that?如何从单独的 DataFrame 中的匹配行值中提取列标题并基于它创建一个新列?
【发布时间】:2021-03-27 11:46:02
【问题描述】:

所以我需要映射某个列的值并创建一个与我需要的匹配的新列,我想出了一个解决方案,方法是从我将使用的一对多映射字典中创建一个 DataFrame .问题是,我不确定如何执行映射本身,我在“映射”DF 中找到相应的行 + 列并提取列标题,然后根据它创建一个新列。

基础 DF:

    Event Name  Event Type
0   Hello       A
1   Hi          D
2   Yes         C

映射DF:

    Good Event  Bad Event
0   A           B
1   C           D
2   E           F

生成的 DF:

    Event Name  Event Type    Original Event Type
0   Hello       Good Event    A
1   Hi          Bad Event     D
2   Yes         Good Event    C

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    考虑下面的df:

    In [1274]: base_df
    Out[1274]: 
      Event_Name Event_Type
    0      Hello          A
    1         Hi          D
    2        Yes          C
    
    In [1263]: mapping_df
    Out[1263]: 
      Good_Event Bad_Event
    0          A         B
    1          C         D
    2          E         F
    
    In [1277]: mapping = {v:k for i in mapping_df.to_dict('records') for k,v in i.items()}
    
    In [1276]: base_df['New event type'] = base_df.Event_Type.map(mapping)
    
    In [1279]: base_df
    Out[1279]: 
      Event_Name Event_Type New event type
    0      Hello          A     Good_Event
    1         Hi          D      Bad_Event
    2        Yes          C     Good_Event
    

    【讨论】:

      猜你喜欢
      • 2018-12-26
      • 1970-01-01
      • 2016-05-08
      • 2021-11-27
      • 1970-01-01
      • 2019-11-29
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      相关资源
      最近更新 更多