【问题标题】:How to create new column and assign values by column group如何创建新列并按列组分配值
【发布时间】:2023-02-06 21:30:36
【问题描述】:

我有数据框,

df
uid    
 1     
 2      
 3
 ...

我想分配一个新列,值 0 或 1 取决于我将分配的 uid。

df
uid  new 
1     0
2     0
3     1
..

【问题讨论】:

  • 以及如何选择将 0/1 映射到哪个 ID?
  • 为什么 12 都有 0
  • 也分享黑白关系.. new 是如何依赖于uid 的!!就像每个被 3 整除的 uid 都会分配 1 ??

标签: python pandas dataframe numpy


【解决方案1】:

您必须解释底层逻辑。

也就是说,有很多可能的方法。

考虑与 map 的显式映射:

mapper = {1: 0, 2: 0, 3: 1}

df['new'] = df['uid'].map(mapper)

或者使用 1isin 的目标列表并转换为 int

target = [3]

df['new'] = df['uid'].isin(target).astype(int)

输出:

   uid  new
0    1    0
1    2    0
2    3    1

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2019-11-06
    • 2015-08-10
    • 2023-03-10
    • 2021-05-23
    相关资源
    最近更新 更多