我想通過評估if-then-else塊中的多個條件在Pandas DataFrame中創建一個新列。評估熊貓數據框中的if-then-else塊中的多個條件
if events.hour <= 6:
events['time_slice'] = 'night'
elif events.hour <= 12:
events['time_slice'] = 'morning'
elif events.hour <= 18:
events['time_slice'] = 'afternoon'
elif events.hour <= 23:
events['time_slice'] = 'evening'
當我運行它,我得到的錯誤如下:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
所以,我試圖通過添加任何聲明來解決這個像圖所示:
if (events.hour <= 6).any():
events['time_slice'] = 'night'
elif (events.hour <= 12).any():
events['time_slice'] = 'morning'
elif (events.hour <= 18).any():
events['time_slice'] = 'afternoon'
elif (events.hour <= 23).any():
events['time_slice'] = 'evening'
現在我做沒有得到任何錯誤,但是當我檢查time_slice的唯一值時,它只顯示'夜'
np.unique(events.time_slice)
array(['night'], dtype=object)
我該如何解決這個問題,因爲我的數據包含應該得到'早上','下午'或'晚上'的樣本。謝謝!
也許第一格是'-1',因爲如果該條目是'0',這可能使它喃? – Divakar
@Divakar,趕上,謝謝!我已經更正了我的回答 – MaxU