0
我有一個csv
文件像這樣:條件函數
Landform Number Name Class
0 Deltaic Plain 912 Lx NaN
1 Hummock and Swale 912 Lx NaN
2 Sand Dunes 912 Lx NaN
3 Hummock and Swale 939 Woodbury NaN
4 Sand Dunes 939 Woodbury NaN
當地貌包含Deltaic Plain
,特定Name
Hummock and Swale
和Sand Dunes
我要值1分配給Class
。
當Landform
包含Hummock and Swale
和Sand Dunes
我想爲Class
分配值2。
我所需的輸出是:
Landform Number Name Class
0 Deltaic Plain 912 Lx 1
1 Hummock and Swale 912 Lx 1
2 Sand Dunes 912 Lx 1
3 Hummock and Swale 939 Woodbury 2
4 Sand Dunes 939 Woodbury 2
我知道如何爲剛1行這樣做:
def f(x):
if x['Landform'] == 'Hummock and Swale' : return '1'
else: return '2'
df['Class'] = df.apply(f, axis=1)
,但我不知道如何通過Name
組,然後創建基於多行的條件函數。
我怎麼會修改這個代碼,以便如果'Name'只有1個'Landform',代碼仍然運行?例如'確定類(地形): 如果所有(形式('Deltaic Plain'))中的地形形式): 返回1'我想我需要將'all'換成別的東西。 –
@StefanoPotter:如果只有一個值,它就會運行,它只會分配0作爲類。你需要編寫'determineClass'來完成你想要的任何邏輯。如果只有一個地形,你的問題並不能解釋你想要做什麼,所以你必須自己決定。例如,如果你想檢查「沙丘」,你可以在地形.values中做「如果」沙丘「 – BrenBarn