【问题标题】:New column for each element in a list列表中每个元素的新列
【发布时间】:2022-07-25 22:44:43
【问题描述】:

我有一个有很多名字的数据集。我想为每个特定名称创建一个新列,如果名称相同则为 1,否则为 0。

原始数据:

期望的输出:

我尝试了以下方法:

names=['Tom','Sarah','Bob']

def function(x):
    for n in names:
        if (x['Name']==n):
            return 1
        else:
            return 0
        
for n in names:        
    df[n]=df.apply(function,axis=1)

这不起作用,因为它返回所有名称的“Tom”列:

我做错了什么?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你可以get_dummies

    out = df.join(df.Name.str.get_dummies()[names])
    

    【讨论】:

      猜你喜欢
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      相关资源
      最近更新 更多