我在 csv 檔案中有一個帶有數字的列,我想在一個函式中比較它們,但效果不佳,請看下面
def newnumbers(list):
for x in list:
if x <= 0.4:
return 1
elif x <= 0.5:
return 2
else:
return 3
thelist = pd.thecolumn
pd['newnumbers'] = newnumbers(thelist)
這是我得到的
thecolumn newnumbers
0 0.021 3
1 0.003 3
2 0.323 3
3 0.576 3
4 0.567 3
5 0.687 3
但我想要這個
thecolumn newnumbers
0 0.021 1
1 0.003 1
2 0.323 1
3 0.576 2
4 0.567 2
5 0.687 3
uj5u.com熱心網友回復:
使用np.select并(也許)<= 0.5通過< 0.6以下方式改變您的狀況:
import numpy as np
df['newnumbers'] = np.select([df['thecolumn'] <= 0.4,
df['thecolumn'] < 0.6],
choicelist=[1, 2], default=3)
輸出:
>>> df
thecolumn newnumbers
0 0.021 1
1 0.003 1
2 0.323 1
3 0.576 2
4 0.567 2
5 0.687 3
uj5u.com熱心網友回復:
看起來您正在使用熊貓,因此請使用 pandas/numpy 方法:
import numpy as np
df['newnumbers'] = np.select([df['thecolumn'].le(0.4), df['thecolumn'].le(0.5)],
[1,2], 3)
輸出:
thecolumn newnumbers
0 0.021 1
1 0.003 1
2 0.323 1
3 0.576 3
4 0.567 3
5 0.687 3
注意。您對值 ≤ 0.5 的條件不應該匹配,也許您的意思是 ≤ 0.6?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/344592.html
