Pandas刪除數(shù)據(jù)的幾種情況(小結(jié))
開始之前,pandas中DataFrame刪除對象可能存在幾種情況
1、刪除具體列
2、刪除具體行
3、刪除包含某些數(shù)值的行或者列
4、刪除包含某些字符、文字的行或者列
本文就針對這四種情況探討一下如何操作。
數(shù)據(jù)準(zhǔn)備
模擬了一份股票交割的記錄。
In [1]: import pandas as pd In [2]: data = { ...: '證券名稱' : ['格力電器','視覺中國','成都銀行','中國聯(lián)通','格力電器','視覺中國','成都銀行','中國聯(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 證券買入 視覺中國 2018-2-1 1500 -15000 證券買入 成都銀行 2018-2-1 2000 -20000 證券買入 中國聯(lián)通 2018-2-2 500 5500 證券賣出 格力電器 2018-2-2 500 5500 證券賣出 視覺中國 2018-2-2 1000 11000 證券賣出 成都銀行 2018-2-3 1500 15000 證券賣出 中國聯(lián)通
刪除具體列
In [5]: df.drop('成交數(shù)量',axis=1) Out[5]: 成交金額 摘要 證券名稱 2018-2-1 -5000 證券買入 格力電器 2018-2-1 -10000 證券買入 視覺中國 2018-2-1 -15000 證券買入 成都銀行 2018-2-1 -20000 證券買入 中國聯(lián)通 2018-2-2 5500 證券賣出 格力電器 2018-2-2 5500 證券賣出 視覺中國 2018-2-2 11000 證券賣出 成都銀行 2018-2-3 15000 證券賣出 中國聯(lián)通
刪除具體行
In [6]: df.drop('2018-2-3') Out[6]: 成交數(shù)量 成交金額 摘要 證券名稱 2018-2-1 500 -5000 證券買入 格力電器 2018-2-1 1000 -10000 證券買入 視覺中國 2018-2-1 1500 -15000 證券買入 成都銀行 2018-2-1 2000 -20000 證券買入 中國聯(lián)通 2018-2-2 500 5500 證券賣出 格力電器 2018-2-2 500 5500 證券賣出 視覺中國 2018-2-2 1000 11000 證券賣出 成都銀行
也可以根據(jù)行號刪除記錄,比如刪除第三行
In [22]: df.drop(df.index[7]) Out[22]: 成交數(shù)量 成交金額 摘要 證券名稱 2018-2-1 500 -5000 證券買入 格力電器 2018-2-1 1000 -10000 證券買入 視覺中國 2018-2-1 1500 -15000 證券買入 成都銀行 2018-2-1 2000 -20000 證券買入 中國聯(lián)通 2018-2-2 500 5500 證券賣出 格力電器 2018-2-2 500 5500 證券賣出 視覺中國 2018-2-2 1000 11000 證券賣出 成都銀行
注意,這個(gè)辦法其實(shí)不是按照行號刪除,而是按照索引刪除。如果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 證券賣出 中國聯(lián)通
本例其實(shí)是篩選,如果需要保留,可以將篩選后的對象賦值給自己即可。
刪除某列包含特殊字符的行
In [11]: df[ ~ df['證券名稱'].str.contains('聯(lián)通') ] Out[11]: 成交數(shù)量 成交金額 摘要 證券名稱 2018-2-1 500 -5000 證券買入 格力電器 2018-2-1 1000 -10000 證券買入 視覺中國 2018-2-1 1500 -15000 證券買入 成都銀行 2018-2-2 500 5500 證券賣出 格力電器 2018-2-2 500 5500 證券賣出 視覺中國 2018-2-2 1000 11000 證券賣出 成都銀行
如果想取包含某些字符的記錄,可以去掉~
In [12]: df[ df['證券名稱'].str.contains('聯(lián)通') ] Out[12]: 成交數(shù)量 成交金額 摘要 證券名稱 2018-2-1 2000 -20000 證券買入 中國聯(lián)通 2018-2-3 1500 15000 證券賣出 中國聯(lián)通
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch深度學(xué)習(xí)經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)resnet模塊訓(xùn)練
這篇文章主要介紹了Pytorch深度學(xué)習(xí)經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)resnet模塊訓(xùn)練,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05對numpy 數(shù)組和矩陣的乘法的進(jìn)一步理解
下面小編就為大家分享一篇對numpy 數(shù)組和矩陣的乘法的進(jìn)一步理解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04python多線程http下載實(shí)現(xiàn)示例
python多線程http下載實(shí)現(xiàn)示例,大家參考使用吧2013-12-12python Django批量導(dǎo)入數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了python Django批量導(dǎo)入數(shù)據(jù)的相關(guān)資料感興趣的小伙伴們可以參考一下2016-03-03Python爬蟲之獲取心知天氣API實(shí)時(shí)天氣數(shù)據(jù)并彈窗提醒
今天我們來學(xué)習(xí)如何獲取心知天氣API實(shí)時(shí)天氣數(shù)據(jù),制作彈窗提醒,并設(shè)置成自啟動(dòng)項(xiàng)目.文中有非常詳細(xì)的代碼示例及介紹,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05python線程安全及多進(jìn)程多線程實(shí)現(xiàn)方法詳解
這篇文章主要介紹了python線程安全及多進(jìn)程多線程實(shí)現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09Python使用jpype模塊調(diào)用jar包過程解析
這篇文章主要介紹了Python使用jpype模塊調(diào)用jar包過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07