Pandas刪除資料的幾種情況 小結

2022-09-27 07:21:09 字數 2734 閱讀 5784

開始之前,pandas中dataframe刪除物件可能存在幾種情況

1、刪除具體列

2、刪除具體行

3、刪除包含某些數值的行或者列

4、刪除包含某些字元、文字的行或者列

本文就針對這四種情況**一下如何操作。

資料準備

模擬了乙份**交割的記錄。

in [1]: import pandas as pd

in [2]: data 程式設計客棧=

...:

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]:

成交數量 成交金額 摘要 **名稱

2018-2-1 500 -5000 **** 格力電器

2018-2-1 1000 -10000 **** 視覺中國

2018-2-1 1500 -15000 **** 成都銀行

2018-2-1 2000 -20000 **** 中國聯通

2018-2-2 程式設計客棧 500 5500 **賣出 格力電器

2018-2-2 500 5500 **賣出 視覺中國

2018-2-2 1000 11000 **賣出 成都銀行

2018-2-3 1500 15000 **賣出 中國聯通

刪除具體列

in [5]: df.drop('成交數量',axis=1)

out[5]:

成交金額 摘要 **名稱

2018-2-1 -5000 **** 格力電器

2018-2-1 -10000 **** 視覺中國

2018-2-1 -15000 **** 成都銀行

2018-2-1 -20000 **** 中國聯通

2018-2-2 5500 **賣出 格力電器

2018-2-2 5500 **賣出 視覺中國

2018-2-2 11000 **賣出 成都銀行

2018-2-3 15000 **賣出 中國聯通

刪除具體行

in [6]: df.drop('2018-2-3')

out[6]:

成交數量 成交金額 摘要 **名稱

2018-2-1 5程式設計客棧00 -5000 **** 格力電器

2018-2-1 1000 -10000 **** 視覺中國

2018-2-1 1500 -15000 **** 成都銀行

2018-2-1 2000 -20000 **** 中國聯通

2018-2-2 500 5500 **賣出 格力電器

2018-2-2 500 5500 **賣出 視覺中國

2018-2-2 1000 11000 **賣出 成都銀行

也可以根據行號刪除記錄,比如刪除第三行

in [22]: df.drop(df.index[7])

out[22]:

成交數量 成交金額 摘要 **名稱

2018-2-1 500 -5000 **** 格力電器

2018-2-1 1000 -10000 **** 視覺中國

2018-2-1 1500 -15000 **** 成都銀行

2018-2-1 2000 -20000 **** 中國聯通

2018-2-2 500 5500 **賣出 格力電器

2018-2-2 500 程式設計客棧 5500 **賣出 視覺中國

2018-2-2 1000 11000 **賣出 成都銀行

注意,這個辦法其實不是按照行號刪除,而是按照索引刪除。如果index為3,則會將前4條記錄都刪除。這個方法支援乙個範圍,以及用負數表示從末尾刪除。

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

in [7]: df[ df['成交金額'] > 10000]

out[7]:

成交數量 成交金額 摘要 **名稱

2018-2-2 1000 1100nsrjw0 **賣出 成都銀行

2018-2-3 1500 15000 **賣出 中國聯通

本例其實是篩選,如果需要保留,可以將篩選後的物件賦值給自己即可。

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

in [11]: df[ ~ df['**名稱'].str.contains('聯通') ]

out[11]:

成交數量 成交金額 摘要 **名稱

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('聯通') ]

out[12]:

成交數量 成交金額 摘要 **名稱

2018-2-1 2000 -20000 **** 中國聯通

2018-2-3 1500 15000 **賣出 中國聯通

本文標題: pandas刪除資料的幾種情況(小結)

本文位址:

ArcEngine 幾種刪除資料的比較

1 ifeaturecursor 游標查詢後,遍歷刪除 2 更新游標刪除ifeaturecursor.deletefeature 3 itable.deletesearchedrows刪除 4 idataset.workspace.executesql 一 幾種刪除方法 1.查詢結果中刪除 priv...

mysql刪除表資料幾種情況

1 drop table table name 刪除表全部資料和表結構,立刻釋放磁碟空間,不管是 innodb 和 myisam 例項,刪除學生表 drop table student 2 truncate table table name 刪除表全部資料,保留表結構,立刻釋放磁碟空間 不管是 in...

Oracle 刪除資料的幾種方法

刪除表 記錄和結構 的語名delete truncate drop delete 刪除資料表裡記錄的語句 delete from表名 where 條件 注意 刪除記錄並不能釋放oracle裡被占用的資料塊表空間.它只把那些被刪除的資料塊標成unused.如果確實要刪除乙個大表裡的全部記錄,可以用 t...