溫馨提示×

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

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

Pandas刪除數(shù)據(jù)的幾種情況(小結(jié))

發(fā)布時(shí)間:2020-09-22 01:19:51 來(lái)源:腳本之家 閱讀:146 作者:Cocowool 欄目:開發(fā)技術(shù)

開始之前,pandas中DataFrame刪除對(duì)象可能存在幾種情況

1、刪除具體列
2、刪除具體行
3、刪除包含某些數(shù)值的行或者列
4、刪除包含某些字符、文字的行或者列

本文就針對(duì)這四種情況探討一下如何操作。

數(shù)據(jù)準(zhǔn)備

模擬了一份股票交割的記錄。

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,-10000,-15000,-20000,5500,5500,11000,15000]
  ...: }
  ...: 

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 -10000 證券買入 視覺(jué)中國(guó)
2018-2-1 1500 -15000 證券買入 成都銀行
2018-2-1 2000 -20000 證券買入 中國(guó)聯(lián)通
2018-2-2  500  5500 證券賣出 格力電器
2018-2-2  500  5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 1000 11000 證券賣出 成都銀行
2018-2-3 1500 15000 證券賣出 中國(guó)聯(lián)通

刪除具體列

In [5]: df.drop('成交數(shù)量',axis=1)
Out[5]: 
      成交金額  摘要 證券名稱
2018-2-1 -5000 證券買入 格力電器
2018-2-1 -10000 證券買入 視覺(jué)中國(guó)
2018-2-1 -15000 證券買入 成都銀行
2018-2-1 -20000 證券買入 中國(guó)聯(lián)通
2018-2-2  5500 證券賣出 格力電器
2018-2-2  5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 11000 證券賣出 成都銀行
2018-2-3 15000 證券賣出 中國(guó)聯(lián)通

刪除具體行

In [6]: df.drop('2018-2-3')
Out[6]: 
     成交數(shù)量  成交金額  摘要 證券名稱
2018-2-1  500 -5000 證券買入 格力電器
2018-2-1 1000 -10000 證券買入 視覺(jué)中國(guó)
2018-2-1 1500 -15000 證券買入 成都銀行
2018-2-1 2000 -20000 證券買入 中國(guó)聯(lián)通
2018-2-2  500  5500 證券賣出 格力電器
2018-2-2  500  5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 1000 11000 證券賣出 成都銀行

也可以根據(jù)行號(hào)刪除記錄,比如刪除第三行

In [22]: df.drop(df.index[7])
Out[22]: 
     成交數(shù)量  成交金額  摘要 證券名稱
2018-2-1  500 -5000 證券買入 格力電器
2018-2-1 1000 -10000 證券買入 視覺(jué)中國(guó)
2018-2-1 1500 -15000 證券買入 成都銀行
2018-2-1 2000 -20000 證券買入 中國(guó)聯(lián)通
2018-2-2  500  5500 證券賣出 格力電器
2018-2-2  500  5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 1000 11000 證券賣出 成都銀行

注意,這個(gè)辦法其實(shí)不是按照行號(hào)刪除,而是按照索引刪除。如果index為3,則會(huì)將前4條記錄都刪除。這個(gè)方法支持一個(gè)范圍,以及用負(fù)數(shù)表示從末尾刪除。

刪除特定數(shù)值的行(刪除成交金額小于10000)

In [7]: df[ df['成交金額'] > 10000]
Out[7]: 
     成交數(shù)量  成交金額  摘要 證券名稱
2018-2-2 1000 11000 證券賣出 成都銀行
2018-2-3 1500 15000 證券賣出 中國(guó)聯(lián)通

本例其實(shí)是篩選,如果需要保留,可以將篩選后的對(duì)象賦值給自己即可。

刪除某列包含特殊字符的行

In [11]: df[ ~ df['證券名稱'].str.contains('聯(lián)通') ]
Out[11]: 
     成交數(shù)量  成交金額  摘要 證券名稱
2018-2-1  500 -5000 證券買入 格力電器
2018-2-1 1000 -10000 證券買入 視覺(jué)中國(guó)
2018-2-1 1500 -15000 證券買入 成都銀行
2018-2-2  500  5500 證券賣出 格力電器
2018-2-2  500  5500 證券賣出 視覺(jué)中國(guó)
2018-2-2 1000 11000 證券賣出 成都銀行

如果想取包含某些字符的記錄,可以去掉~

In [12]: df[ df['證券名稱'].str.contains('聯(lián)通') ]
Out[12]: 
     成交數(shù)量  成交金額  摘要 證券名稱
2018-2-1 2000 -20000 證券買入 中國(guó)聯(lián)通
2018-2-3 1500 15000 證券賣出 中國(guó)聯(lián)通

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向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