创建系列使用条件

2024-06-16 10:58:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用泰坦尼克号数据集,并创建了一个系列。我想创建第二个系列,如果famsize=1,则输出“single”,如果1<;famsize<;5,则输出“small”,如果famsize>;5,则输出“large”。你知道吗

   Famsize FamsizeDisc
     1         single
     2         small
     5         large

我试过用np.哪里但由于我有三个输出,我还没有找到解决办法。你知道吗

有什么建议吗?你知道吗


Tags: 数据ltgtnp建议smalllargesingle
2条回答

您可以创建一个进行映射的函数:

def get_sizeDisc(x):
    if x == 1:
        return 'single'
    elif x < 5:
        return 'small'
    elif x >= 5:
        return 'large'

df['FamsizeDisc'] = df.Famsize.apply(get_sizeDisc)

或者你可以用.loc

df.loc[df.Famsize==1, 'FamsizeDisc'] = 'single'
df.loc[df.Famsize.between(1,5, inclusive = False), 'FamsizeDisc'] = 'small'
df.loc[df.Famsize>=5, 'FamsizeDisc'] = 'large'

它被称为binning,所以使用pd.cut,即

df['new'] = pd.cut(df['Famsize'],bins=[0,1,4,np.inf],labels=['single','small','large'])

输出:

   Famsize FamsizeDisc     new
0        1      single  single
1        2       small   small
2        5       large   large

相关问题 更多 >