【问题标题】:Using lambda to create a new variable in Pandas在 Pandas 中使用 lambda 创建一个新变量
【发布时间】:2017-11-17 00:43:57
【问题描述】:

如果我想在 Pandas 中执行以下操作,我该如何使用 Lambda:

df['c'] = 0
df['c'][(df['a']==1) | (df['b'] ==1)] = 1

谢谢

【问题讨论】:

    标签: python pandas lambda


    【解决方案1】:

    我无法证明使用 lambda

    df.assign(c=df[['a', 'b']].eq(1).any(1).astype(int))
    

    但如果你坚持:

    df.assign(c=lambda d: d[['a', 'b']].eq(1).any(1).astype(int))
    

    【讨论】:

    • 我习惯做以下事情(基于另一个变量创建一个二类 c 变量):df['c'] = df['a'].map(lambda x: 0 if x>5 else 1) 我可以使用一个变量做类似的事情吗?
    • 是的,但我不建议这样做
    【解决方案2】:

    您可以使用 apply 但更改轴。

    import pandas as pd
    
    df =pd.DataFrame({'a':[1,2], 'b':[1,2]})
    df['c'] = df.apply(lambda df: 1 if(df['a'] == 1| df['b']==1) else 0, axis = 1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多