引言
在使用 Python 的 Pandas 庫處理數據時,我們時常需要添加一些新列,時不時添加一列也就算了,同時添加多列(毫無規律的,不使用循環)時是真的氣人,還有就是快速選擇符合條件的數據框有時也會成爲令人難受。
業務需求 & 效果實現
快到飛起的 eval()
筆者將效果實現分成了幾個版本
低端累到不能呼吸版
最基礎的列操作了
中端客可喘氣版
這個版本藉助了循環的幫助,省去了複製粘貼該改數字
已經快了很多
高端暢順呼吸版
使用 eval 函數的同時藉助循環的幫助,這裏就只是展示 eval 的生成單列的用法。
同樣快到飛起的 query()
功能不多說,看圖說話即可,只展示 query 最常用的功能
總結
兩個函數的簡單和最常見的用法不用說大家看圖也能夠理解,就是省去了打出文件名和中括號,藉助循環的力量,找出列索引的規律;在數據清洗/文件批處理中非常常見。
這兩個相對來說冷門一些的函數不僅代碼量大大減少,而且在內存執行速度上也會更快;**從版本0.13開始,Pandas 包含了一下實驗性的工具允許你直接使用 C 速度操作,避免中間數組的浪費。這些工具是eval()和 query()函數,它們依賴 Numexpr包。**其實這只是這兩個函數的冰山一角,各種快捷騷操作還等待着我們去探索 Pandas,Numpy 的快捷函數太多了,所以鮮有人敢自稱自己精通 numpy pandas 或者只是其中一個庫(熊貓創始人曾在視頻中也對此感到無奈)。總的來說,替自己總是忘記快捷函數而感到擔憂是完全沒有必要的,只需牢記沒有最快,只有更快,想得起來就用想不起來就查。
後記
延伸閱讀
精彩回顧
數據分析,商業實踐,數據可視化,網絡爬蟲,統計學,Excel,Word, 社會心理學,認知心理學,行爲科學,民族意志學 各種專欄後續瘋狂補充
歡迎評論與私信交流!