您好,登錄后才能下訂單哦!
如何利用DataFrame對(duì)數(shù)據(jù)進(jìn)行篩選?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
DataFrame篩選數(shù)據(jù)
python中pandas下的DataFrame是一個(gè)很不錯(cuò)的數(shù)據(jù)結(jié)構(gòu),附帶了許多操作、運(yùn)算、統(tǒng)計(jì)等功能。
如何從一個(gè)DataFrame中篩選中出一個(gè)元素呢。
以tushare返回的交易日信息為例。
df = ts.trade_cal()
數(shù)據(jù)如下:
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
如何取出某個(gè)日期的信息呢。例如年底了,想知道除夕前最后一個(gè)交易日是哪天。此處使用篩選功能。
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
注意一定要寫上雙等號(hào)一定要寫上雙等號(hào)一定要寫上雙等號(hào)。重要的事情說(shuō)3遍。。。
因?yàn)槿绻菃蔚忍?hào),會(huì)報(bào)語(yǔ)法異常的。。。
loc函數(shù)
關(guān)于loc這個(gè)坑爹的函數(shù)的用法,咋說(shuō)呢,不要被他的”純以標(biāo)簽名來(lái)進(jìn)行索引”迷惑了。因?yàn)槿绻憬oLoc中的第一個(gè)參數(shù)一個(gè)str的話,極有可能返回的是一個(gè)異常,說(shuō)不在index中。 。。。。
坑爹。。。。
這個(gè)loc的用法不是根據(jù)某個(gè)位置內(nèi)容篩選的含義,仍然是對(duì)行、對(duì)列的一種篩選。比如你某行的索引自己設(shè)置標(biāo)簽啥的。。很讓人一頭霧水的設(shè)計(jì)。跟ix就是重復(fù)的。。。。
大多數(shù)情況下的應(yīng)用場(chǎng)景就是還是用數(shù)字取行,用str取列。
比如loc[0:3,[“a”,”b”]]。取0到第3行(左閉右開,非整型值時(shí)左閉右閉。。。),”a”列與”b”列。
看完上述內(nèi)容,你們掌握如何利用DataFrame對(duì)數(shù)據(jù)進(jìn)行篩選的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。