開(kāi)始之前,pandas中DataFrame刪除對(duì)象可能存在幾種情況
1、刪除具體列
2、刪除具體行
3、刪除包含某些數(shù)值的行或者列
4、刪除包含某些字符、文字的行或者列
本文就針對(duì)這四種情況探討一下如何操作。
創(chuàng)新互聯(lián)公司主要企業(yè)基礎(chǔ)官網(wǎng)建設(shè),電商平臺(tái)建設(shè),移動(dòng)手機(jī)平臺(tái),微信小程序等一系列專為中小企業(yè)按需規(guī)劃網(wǎng)站產(chǎn)品體系;應(yīng)對(duì)中小企業(yè)在互聯(lián)網(wǎng)運(yùn)營(yíng)的各種問(wèn)題,為中小企業(yè)在互聯(lián)網(wǎng)的運(yùn)營(yíng)中保駕護(hù)航。
模擬了一份股票交割的記錄。
In [1]: import pandas as pd
In [2]: data = {
...: '證券名稱' : ['格力電器','視覺(jué)中國(guó)','成都銀行','中國(guó)聯(lián)通','格力電器','視覺(jué)中國(guó)','成都銀行','中國(guó)聯(lián)通'],
...: '摘要': ['證券買入','證券買入','證券買入','證券買入','證券賣出','證券賣出','證券賣出','證券賣出'],
...: '成交數(shù)量' : [500,1000,1500,2000,500,500,1000,1500],
...: '成交金額' : [-5000,-,-,-,5500,5500,,]
...: }
...:
In [3]: df = pd.DataFrame(data, index = ['2018-2-1','2018-2-1','2018-2-1','2018-2-1','2018-2-2','2018-2-2','2018-2-2','2018-2-3'])
In [4]: df
Out[4]:
成交數(shù)量 成交金額 摘要 證券名稱
2018-2-1 500 -5000 證券買入 格力電器
2018-2-1 1000 - 證券買入 視覺(jué)中國(guó)
2018-2-1 1500 - 證券買入 成都銀行
2018-2-1 2000 - 證券買入 中國(guó)聯(lián)通
2018-2-2 500 5500 證券賣出 格力電器
2018-2-2 500 5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 1000 證券賣出 成都銀行
2018-2-3 1500 證券賣出 中國(guó)聯(lián)通
In [5]: df.drop('成交數(shù)量',axis=1)
Out[5]:
成交金額 摘要 證券名稱
2018-2-1 -5000 證券買入 格力電器
2018-2-1 - 證券買入 視覺(jué)中國(guó)
2018-2-1 - 證券買入 成都銀行
2018-2-1 - 證券買入 中國(guó)聯(lián)通
2018-2-2 5500 證券賣出 格力電器
2018-2-2 5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 證券賣出 成都銀行
2018-2-3 證券賣出 中國(guó)聯(lián)通
In [6]: df.drop('2018-2-3')
Out[6]:
成交數(shù)量 成交金額 摘要 證券名稱
2018-2-1 500 -5000 證券買入 格力電器
2018-2-1 1000 - 證券買入 視覺(jué)中國(guó)
2018-2-1 1500 - 證券買入 成都銀行
2018-2-1 2000 - 證券買入 中國(guó)聯(lián)通
2018-2-2 500 5500 證券賣出 格力電器
2018-2-2 500 5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 1000 證券賣出 成都銀行
也可以根據(jù)行號(hào)刪除記錄,比如刪除第三行
In [22]: df.drop(df.index[7])
Out[22]:
成交數(shù)量 成交金額 摘要 證券名稱
2018-2-1 500 -5000 證券買入 格力電器
2018-2-1 1000 - 證券買入 視覺(jué)中國(guó)
2018-2-1 1500 - 證券買入 成都銀行
2018-2-1 2000 - 證券買入 中國(guó)聯(lián)通
2018-2-2 500 5500 證券賣出 格力電器
2018-2-2 500 5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 1000 證券賣出 成都銀行
注意,這個(gè)辦法其實(shí)不是按照行號(hào)刪除,而是按照索引刪除。如果index為3,則會(huì)將前4條記錄都刪除。這個(gè)方法支持一個(gè)范圍,以及用負(fù)數(shù)表示從末尾刪除。
In [7]: df[ df['成交金額'] > ]
Out[7]:
成交數(shù)量 成交金額 摘要 證券名稱
2018-2-2 1000 證券賣出 成都銀行
2018-2-3 1500 證券賣出 中國(guó)聯(lián)通
本例其實(shí)是篩選,如果需要保留,可以將篩選后的對(duì)象賦值給自己即可。
'''
學(xué)習(xí)中遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流群:
尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書!
'''
In [11]: df[ ~ df['證券名稱'].str.contains('聯(lián)通') ]
Out[11]:
成交數(shù)量 成交金額 摘要 證券名稱
2018-2-1 500 -5000 證券買入 格力電器
2018-2-1 1000 - 證券買入 視覺(jué)中國(guó)
2018-2-1 1500 - 證券買入 成都銀行
2018-2-2 500 5500 證券賣出 格力電器
2018-2-2 500 5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 1000 證券賣出 成都銀行
如果想取包含某些字符的記錄,可以去掉~
In [12]: df[ df['證券名稱'].str.contains('聯(lián)通') ]
Out[12]:
成交數(shù)量 成交金額 摘要 證券名稱
2018-2-1 2000 - 證券買入 中國(guó)聯(lián)通
2018-2-3 1500 證券賣出 中國(guó)聯(lián)通