溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何利用DataFrame對(duì)數(shù)據(jù)進(jìn)行篩選

發(fā)布時(shí)間:2021-01-13 15:13:14 來(lái)源:億速云 閱讀:235 作者:Leah 欄目:開發(fā)技術(shù)

如何利用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è)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI