我正在使用泰坦尼克號數據集並創建了一系列Famsize。我想創建第二個系列,如果famsize = 1,則輸出'單';如果輸入'<',則輸出'小',如果famsize> = 5,則輸出'大'。熊貓使用條件創建系列
Famsize FamsizeDisc
1 single
2 small
5 large
我試過使用np.where但是因爲我有三個輸出我一直沒有找到解決方案。
有什麼建議嗎?
我正在使用泰坦尼克號數據集並創建了一系列Famsize。我想創建第二個系列,如果famsize = 1,則輸出'單';如果輸入'<',則輸出'小',如果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'
確實分享了迄今爲止嘗試的內容。 – parth