我想知道如何為以下資料框創建一個新列(例如 B),并為每一行定義其值是否為 A1: x>2, A2: between(2,0), A3: between(0,- 2) 或 A4:x<-2。
imprt pandas as pd
imort numpy as np
df = pd.DataFrame({'A':[-4,-3.5,-2.5,-1,1,1.5,2,2.5,3.5]})
我嘗試了以下代碼,但沒有用。
df['B'] = np.where((df['A']>2), 'A1',
np.where(df['A'].between(2,0),'A2',
np.where(df['A'].between(0,-2),'A3',
np.where(df['A']<-2), 'A4'))
uj5u.com熱心網友回復:
如果更改,您的解決方案是可能的():
df['B'] = np.where(df['A']>2,'A1',
np.where(df['A'].between(0,2),'A2',
np.where(df['A'].between(-2,0),'A3',
np.where(df['A']<-2, 'A4',''))))
替代cut:
df['B1'] = pd.cut(df['A'], bins=(-np.inf,-2,0,2,np.inf), labels=('A4','A3','A2','A1'))
print (df)
A B B1
0 -4.0 A4 A4
1 -3.5 A4 A4
2 -2.5 A4 A4
3 -1.0 A3 A3
4 1.0 A2 A2
5 1.5 A2 A2
6 2.0 A2 A2
7 2.5 A1 A1
8 3.5 A1 A1
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397942.html
