小编Rac*_*ger的帖子

Pandas - 在方法链中使用赋值和 if-else 语句

我来自 R 背景,我正在尝试mutate()从 Pandas 中的 dplyr复制该功能。

我有一个看起来像这样的数据框:

data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 
        'age': [42, 52, 36, 24, 73], 
        'preTestScore': [4, 24, 31, 2, 3],
        'postTestScore': [25, 94, 57, 62, 70]}
df = pd.DataFrame(data, columns = ['name', 'age', 'preTestScore', 'postTestScore'])
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试创建一个名为age_bracketusingassign方法的新列,如下所示:

(df.
    assign(age_bracket= lambda x: "under 25" if x['age'] < 25 else
        ("25-34" if x['age'] < 35 else "35+"))

Run Code Online (Sandbox Code Playgroud)

这引发了我无法理解的以下错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), …

python method-chaining pandas dplyr mutate

0
推荐指数
2
解决办法
1447
查看次数

标签 统计

dplyr ×1

method-chaining ×1

mutate ×1

pandas ×1

python ×1