0
我在df draft
中有一列lastseason
類型對象(無NULL或NaN)。我想創建一個基於的最後2個位數的lastseason
比較新列Age_retired
到50熊貓 - 在數據框中創建新列時if函數出錯
這裏是上賽季列
0 1993-94
1 1990-91
2 1993-94
3 1997-98
Name: lastseason, dtype: object
提取的最後2位數字,並轉換爲數字
print pd.to_numeric(draft['lastseason'].astype('str').str[-2:],errors='coerce')
0 94
1 91
2 94
3 98
Name: lastseason, dtype: int64
創建列Age_retired
if pd.to_numeric(draft['lastseason'].astype('str').str[-2:],errors='coerce') <50:
draft['Age_retired'] = 2000 + pd.to_numeric(draft['lastseason'].astype('str').str[-2:],errors='coerce')
else:
draft['Age_retired'] = 1900 + pd.to_numeric(draft['lastseason'].astype('str').str[-2:],errors='coerce')
我與if
行錯誤:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我在想,我的if-else
結構不適用於列有許多價值。真的很感謝任何幫助
謝謝@ juanpa.arrivillaga。只是好奇,有沒有定義一個新的功能做同樣的事情呢? – Square9627
@ Square9627如果您不想定義新函數,則可以使用lambda函數: '... map(lambda x:2000 + x if <50 else 1900 + x)' –