gpt4 book ai didi

python - “int”对象在 if 语句后不可下标

转载 作者:太空宇宙 更新时间:2023-11-04 00:11:29 25 4
gpt4 key购买 nike

所以我有一个数据框:

import pandas as pd

df = pd.DataFrame({'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'score': [1, 3, 4, 5, 2]})

我想根据“分数”列中的条件创建一个新列。

我试过这样的

df['happiness'] = df['score']
def are_you_ok(df):
if df['happiness'] >= 4:
return 'happy',
elif df['happiness'] <= 2:
return 'sad',
else:
return 'ok'

df['happines'] = df['happiness'].apply(are_you_ok)
df

当我尝试运行它时,我得到的是:

TypeError: 'int' object is not subscriptable

我不能对整数使用这种函数吗?

最佳答案

听起来像你想要的np.select来自 numpy

import numpy as np

conds = [df.score >=4, df.score <=2]

choices = ['happy', 'sad']

df['happiness'] = np.select(conds, choices, default='ok')

>>> df
name score happiness
0 Jason 1 sad
1 Molly 3 ok
2 Tina 4 happy
3 Jake 5 happy
4 Amy 2 sad

注意:您可以使用 pandas.np(或 pd.np,具体取决于您导入 pandas 的方式)来避免显式导入 numpy只是 np

关于python - “int”对象在 if 语句后不可下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52392922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com