【发布时间】:2018-05-31 08:39:01
【问题描述】:
我正在寻找 R 的 mutate 的等价物,它允许您在创建变量后立即引用它们在同一个 mutate 调用中。
new_df <- old_df %>%
mutate(new_col = ifelse(something, 0, 1),
newer_col = ifelse(new_col == 0, 'yay', 'nay'))
在 python pandas 中寻找等价物。
如果我创建以下数据框,我想知道是否有办法使用.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')
但想知道是否有办法在同一个调用中做到这一点?
【问题讨论】:
-
不起作用。我得到了和以前一样的
'DataFrame' object has no attribute 'less_than_6'。谢谢你的尝试! -
将其添加为答案
标签: python r pandas dataframe dplyr