【问题标题】:Compare rows in a pandas df and generate new columns比较 pandas df 中的行并生成新列
【发布时间】:2023-01-31 17:44:45
【问题描述】:

我有这个熊猫 df

df = pd.DataFrame({'id': [1, 2, 3, 4, 5, 6], 'name': ['steve', 'joey', 'nikolaj', 'buddy', 'chester', 'mateo']})

我想比较名称列中的每一行并生成如下所示的 df:

id    name    second_name    second_id
1     steve   joey           2
1     steve   nikolaj        3
1     steve   buddy          4
1     steve   chester        5
1     steve   mateo          6
2     joey    steve.         1
3.    joey.   nikolaj.       3

基本上 df 中的每个唯一行每次与该列中的每一行进行比较时都会重复自己。

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    一种简单的方法是使用过滤进行交叉合并:

    out = df.merge(df.add_prefix('second_'), how='cross').query('id != second_id')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 2021-07-26
      • 2022-01-24
      相关资源
      最近更新 更多