簡體   English   中英

熊貓使用條件創建系列

[英]Pandas create series using conditional

我使用的是泰坦尼克號數據集,並創建了一系列Famsize。 我想創建第二個系列,如果famsize = 1,則輸出“單”,如果1 <famsize <5,則輸出“小”,如果famsize> = 5,則輸出“大”。

   Famsize FamsizeDisc
     1         single
     2         small
     5         large

我曾嘗試使用np.where,但是由於我有三個輸出,因此無法找到解決方案。

有什么建議么?

它稱為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

您可以創建一個執行映射的函數:

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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM