【问题标题】:Merging two dataframes while changing the order of the second dataframe each time合并两个数据帧,同时每次更改第二个数据帧的顺序
【发布时间】:2022-01-27 18:19:43
【问题描述】:

df 是这样的:

Week    Name  
 1      TOM
 1      BEN
 1      CARL
 2      TOM
 2      BEN
 2      CARL
 3      TOM
 3      BEN
 3      CARL

df1 是这样的:

ID     Letter
1        A
2        B
3        C

我想合并这两个数据框,以便每次为每个名称分配一个不同的字母。所以结果应该是这样的:

Week    Name    Letter
 1      TOM       A
 1      BEN       B
 1      CARL      C
 2      TOM       B
 2      BEN       C
 2      CARL      A
 3      TOM       C
 3      BEN       A
 3      CARL      B

任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: python pandas join merge


    【解决方案1】:
    df1['Letter'] = df1.groupby('Week').cumcount().add(df1['Week'].sub(1)).mod(df1.groupby('Week').transform('count')['Name']).map(df2['Letter'])
    

    输出:

    >>> df1
       Week  Name Letter
    0     1   TOM      A
    1     1   BEN      B
    2     1  CARL      C
    3     2   TOM      B
    4     2   BEN      C
    5     2  CARL      A
    6     3   TOM      C
    7     3   BEN      A
    8     3  CARL      B
    

    【讨论】:

    • 感谢您回来,但我需要字母列来更改每个周数的顺序,所以汤姆应该在第 1 周有 A,在第 2 周有 B,在第 3 周有 C
    • @toothsie 立即查看。 :)
    猜你喜欢
    • 2022-11-02
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多