您好,登錄后才能下訂單哦!
如何利用DataFrame對數據進行篩選?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
DataFrame篩選數據
python中pandas下的DataFrame是一個很不錯的數據結構,附帶了許多操作、運算、統計等功能。
如何從一個DataFrame中篩選中出一個元素呢。
以tushare返回的交易日信息為例。
df = ts.trade_cal()
數據如下:
calendarDate isOpen 0 1990/12/19 1 1 1990/12/20 1 2 1990/12/21 1 3 1990/12/22 0 4 1990/12/23 0 5 1990/12/24 1 6 1990/12/25 1 7 1990/12/26 1 8 1990/12/27 1 9 1990/12/28 1 10 1990/12/29 0 11 1990/12/30 0 12 1990/12/31 1 13 1991/1/1 0 14 1991/1/2 1 15 1991/1/3 1 16 1991/1/4 1 17 1991/1/5 0 18 1991/1/6 0 19 1991/1/7 1 20 1991/1/8 1 21 1991/1/9 1 22 1991/1/10 1 23 1991/1/11 1 24 1991/1/12 0 25 1991/1/13 0 26 1991/1/14 1 27 1991/1/15 1 28 1991/1/16 1 29 1991/1/17 1 ... ... ... 9845 2017/12/02 0 9846 2017/12/03 0 9847 2017/12/04 1 9848 2017/12/05 1 9849 2017/12/06 1 9850 2017/12/07 1 9851 2017/12/08 1 9852 2017/12/09 0 9853 2017/12/10 0 9854 2017/12/11 1 9855 2017/12/12 1 9856 2017/12/13 1 9857 2017/12/14 1 9858 2017/12/15 1 9859 2017/12/16 0 9860 2017/12/17 0 9861 2017/12/18 1 9862 2017/12/19 1 9863 2017/12/20 1 9864 2017/12/21 1 9865 2017/12/22 1 9866 2017/12/23 0 9867 2017/12/24 0 9868 2017/12/25 1 9869 2017/12/26 1 9870 2017/12/27 1 9871 2017/12/28 1 9872 2017/12/29 1 9873 2017/12/30 0 9874 2017/12/31 0
如何取出某個日期的信息呢。例如年底了,想知道除夕前最后一個交易日是哪天。此處使用篩選功能。
df[df.calendarDate=="2017/12/31"]
輸出如下:
>>> df[df.calendarDate=="2017/12/31"] calendarDate isOpen 9874 2017/12/31 0 >>> df[df.icol(0)=="2017/12/11"] __main__:1: FutureWarning: icol(i) is deprecated. Please use .iloc[:,i] calendarDate isOpen 9854 2017/12/11 1
注意一定要寫上雙等號一定要寫上雙等號一定要寫上雙等號。重要的事情說3遍。。。
因為如果是單等號,會報語法異常的。。。
loc函數
關于loc這個坑爹的函數的用法,咋說呢,不要被他的”純以標簽名來進行索引”迷惑了。因為如果你給Loc中的第一個參數一個str的話,極有可能返回的是一個異常,說不在index中。 。。。。
坑爹。。。。
這個loc的用法不是根據某個位置內容篩選的含義,仍然是對行、對列的一種篩選。比如你某行的索引自己設置標簽啥的。。很讓人一頭霧水的設計。跟ix就是重復的。。。。
大多數情況下的應用場景就是還是用數字取行,用str取列。
比如loc[0:3,[“a”,”b”]]。取0到第3行(左閉右開,非整型值時左閉右閉。。。),”a”列與”b”列。
看完上述內容,你們掌握如何利用DataFrame對數據進行篩選的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。