[英]Need help using Loc to bin and replace numbers
我有一列帶有數值。 我想確定列中的數字是高於還是低於數字 30,如果高於或低於 30,則將其替換為 1,如果低於則替換為 0。 我目前正在使用.loc,但我似乎無法弄清楚 | 注釋功能
kraken = pd.read_csv(data_path + 'ITSM_Master_2020-10-05.csv')
kraken.loc[[kraken['Incident_Duration']<30, 'high_or_low']=0 |
[kraken['Incident_Duration']>=30, 'high_or_low']=1]
類似的東西? 我將數字放入稱為高或低的列中 事件持續時間是一個大列,例如數字范圍為 0-100
Incident Duration = [25,26,50,52,50,100,5]
一些問題:
loc
中的語法。 您正在傳遞一個列表,其中包含 dataframe 和一個字符串,我什至不確定那里發生了什么。 我將在下面展示我通常如何使用loc
,但也許你沒有錯我只是不確定你的問題的根源。|
兩個任務之間。loc
為其分配值之前啟動列“high_or_low”。 因此,讓我們使用值 0 來啟動它,並將 1 放置在您的條件需要的任何位置。解決方案:
kraken['high_or_low'] = 0
kraken.loc[kraken['Incident_Duration'] >= 30, 'high_or_low'] = 1
無需使用loc
。 如果你只是做kraken["Incident_Duration"] >= 30
你會得到一個 boolean 系列告訴你,對於每一行,是否滿足條件。 所以剩下的就是將其轉換為0
或1
和 append 該系列作為數據框的一列。 您有兩種選擇:
astype()
方法將系列轉換為 int:kraken["high_or_low"] = (kraken["Incident_Duration"] >= 30).astype(int)
int
:kraken["high_or_low"] = (kraken["Incident_Duration"] >= 30) * 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.