• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

在熊猫数据框中使用最近创建的属性来创建新属性

python 来源:Matt W. 7次浏览

我正在寻找相当于R的mutate,它允许您在创建它们之后立即引用已定义的变量在相同的mutate调用内。在熊猫数据框中使用最近创建的属性来创建新属性

new_df <- old_df %>% 
    mutate(new_col = ifelse(something, 0, 1), 
      newer_col = ifelse(new_col == 0, 'yay', 'nay')) 

python熊猫中寻找等价物。

如果我创建了以下数据框,我想知道是否有一种方法可以使用.assign来做同样的事情?

dic = {'names': ['jeff', 'alice', 'steph', 'john'], 
     'numbers':[4, 6, 5, 7]} 

df = pd.DataFrame(dic) 

df = df.assign(less_than_6 = np.where(df.numbers < 6, 100, 0), 
       pass_fail = np.where(df.less_than_6 == 100, 'pass', 'fail')) 

我能想到的是替代..

df['less_than_6'] = np.where(df.numbers < 6, 100, 0) 
df['pass_fail'] = np.where(df.less_than_6 == 100, 'pass', 'fail') 

,但不知道是否有办法做到这一点在同一个电话吗?


===========解决方案如下:

assign

df.assign(**{'less_than_6' :lambda x : np.where(x['numbers'] < 6, 100, 0)}).assign(**{'pass_fail':lambda x : np.where(x['less_than_6'] == 100, 'pass', 'fail')})                
Out[202]: 
    names numbers less_than_6 pass_fail 
0 jeff  4   100  pass 
1 alice  6   0  fail 
2 steph  5   100  pass 
3 john  7   0  fail 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)