免責聲明:我的代碼非常業餘,因爲我仍在進行課程工作。如果我的代碼效率低下或質量不好,請耐心等待。簡化大熊貓數據框中布爾列的追加
我一直在最近的Python教程中學習熊貓的力量,並將它應用於我的一些課程作業。我們已經學會了如何在Pandas上使用布爾過濾器,所以我決定更進一步,嘗試將布爾值附加到我的數據(效率)列中。
導師說我們應該專注於盡量減少代碼 - 我已經試圖爲下面的效率列這樣做。 基準效率值爲0.4805(48.05%)。如果數值高於此值,則可以接受。如果低於這個值,這是一個'失敗'。
我曾嘗試使用下面的代碼附加這個我數據幀:
df['Classification'] = (df[['Efficiency_%']].sum(axis=1) > 0.4805)
df['Classification'] = (df['Classification'] == True).astype(int)
雖然這只是2行代碼 - 有什麼辦法,我可以進一步簡化爲只有一條線路呢?
我曾考慮過使用'lambda'函數,我正在閱讀。我有興趣是否有其他可供選擇的選擇。
我的我已經試過的方法已經:
- For循環 - 建議不要使用此,由於它是低效率的。
If語句 - 我無法得到這個工作,因爲我不能在df ['Classification']列中追加'1'或'0',因爲它是一個數據框而不是一個系列。
if i > 0.4805: df['Classification'].append('0') else: df['Classification'].append('1')if test
謝謝。
謝謝!這比我想象的要簡單得多。如果你不介意,你能否詳細說明我的問題中的「IF」聲明部分?實際上是否可以通過IF方法將值附加到數據框? – azurekirby
您不能將標量值附加到Series,如果您想採用for循環方法,請創建一個列表,將「0」和「1」附加到列表中,然後將該列表作爲列分配給數據幀:像'lst = [];對於我在DF ['Efficiency_%']:如果我> 0.4805:lst.append(1)else:lst.append(0); df ['Classification'] = lst'。 – Psidom
非常感謝Psidom!我會在筆記中寫下這些,因爲這是非常有用的方法。 – azurekirby