2024-06-16 10:58:50 发布
网友
我正在使用泰坦尼克号数据集,并创建了一个系列。我想创建第二个系列,如果famsize=1,则输出“single”,如果1<;famsize<;5,则输出“small”,如果famsize>;5,则输出“large”。你知道吗
Famsize FamsizeDisc 1 single 2 small 5 large
我试过用np.哪里但由于我有三个输出,我还没有找到解决办法。你知道吗
有什么建议吗?你知道吗
您可以创建一个进行映射的函数:
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
.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,即
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
您可以创建一个进行映射的函数:
或者你可以用
.loc
它被称为
binning
,所以使用pd.cut
,即输出:
相关问题 更多 >
编程相关推荐