pandas處理大資料題目的操作
阿新 • • 發佈:2021-09-07
1、用法:DataFrame.drop(labels=None, axis=0, index=None, columns=None, inplace=False)
2、引數說明:
labels:要刪除的行/列的名字,用列表給出
axis:預設為0,即刪除行,刪除列時指定為1
index:直接指定要刪除的行
columns:直接指定要刪除的列
inplace:預設為False,即刪除操作不改變元資料,而是返回一個執行刪除操作後的新DataFrame,若為True,則會在元資料據上進行刪除操作,刪除後無法返回
3、刪除行列的兩種方式:
1)labels=None, axis=0/1的組合
2)index或columns直接指定要刪除的行或列
1.濾除缺失資料dropna()
import pandas as pd
import numpy as np
df=pd.DataFrame({"record":[np.nan,"亞健康|潘光|45歲","疾病|張思",np.nan],"date":[np.nan,20210102,20210103,20210104]},index=["one","two","three","four"])
1)濾除含有NaN值的所有行
df.dropna()#預設axis=0
2)濾除含有NaN值的所有列
df.dropna(axis=1)
3)濾除元素都是NaN值的行
df.dropna(axis=0,how="all")
5)濾除指定列中含有缺失的行
df.dropna(subset=["record"],axis=0)
以上如果需要在原資料上直接做更改,需設定引數inplace=True
2.刪除重複值 drop_duplicates()
df=pd.DataFrame({'state':[1,1,2,2,1,2,2],'pop':['a','b','c','d','b','c','d']})
語法:drop_duplicates(subset,keep,inplace),其中引數 keep:{‘first’,‘last’,False},預設’first’
first:保留第一次出現的重複項,刪除第二次及之後出現的重複項。
last:保留最後一次出現的重複項,刪除之前出現的重複項。
"false":刪除所有重複項。
1)keep=“first”
df.drop_duplicates(keep="first")
2)keep=“last”
df.drop_duplicates(keep="last")
3)keep=False
df.drop_duplicates(keep=False)
4)刪除指定列中重複項對應的行
df.drop_duplicates(subset=["state"],keep="first")
以上如果需要在原資料上直接做更改,需設定引數inplace=True
3.根據指定條件刪除行列drop()
df=pd.DataFrame(np.arange(16).reshape(4,4),columns=["one","two","three","four"])
1).刪除指定列
df.drop(["one"],axis=1)
- >>>df.drop(columns=['B', 'C'])