欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文詳解Python中數(shù)據(jù)清洗與處理的常用方法

 更新時間:2025年01月28日 10:14:38   作者:請為小H留燈  
在數(shù)據(jù)處理與分析過程中,缺失值、重復值、異常值等問題是常見的挑戰(zhàn),本文總結了多種數(shù)據(jù)清洗與處理方法,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考下

在數(shù)據(jù)處理與分析過程中,缺失值、重復值、異常值等問題是常見的挑戰(zhàn)。

本文總結了多種數(shù)據(jù)清洗與處理方法:

缺失值處理包括刪除缺失值、固定值填充、前后向填充以及刪除缺失率高的列;

重復值處理通過刪除或標記重復項解決數(shù)據(jù)冗余問題;

異常值處理采用替換或標記方法控制數(shù)據(jù)質量;

數(shù)據(jù)類型轉換確保數(shù)據(jù)格式符合分析需求,例如轉換為整數(shù)或日期類型;

文本清洗包括去空格、字符替換及轉換大小寫等操作。

此外,還介紹了數(shù)據(jù)分組統(tǒng)計、數(shù)據(jù)分箱與標準化的應用。例如,分組統(tǒng)計可按列求均值,數(shù)據(jù)分箱能為連續(xù)變量賦予分類標簽,而歸一化則通過壓縮數(shù)據(jù)范圍提升模型表現(xiàn)。這些方法能有效提高數(shù)據(jù)質量與分析效率,是數(shù)據(jù)科學中不可或缺的能。         

缺失值處理

刪除缺失值

df_dropped = df.dropna()
print("\n刪除缺失值后:")
print(df_dropped)

用固定值填充缺失值

df_filled = df.fillna({
    'title': 'Unknown',
    'author': 'Unknown Author',
    'price': df['price'].mean()
})
print("\n填充缺失值后:")
print(df_filled)

前向填充

df_ffill = df.fillna(method='ffill')
print("\n前向填充缺失值后:")
print(df_ffill)

后向填充

df_bfill = df.fillna(method='bfill')
print("\n后向填充缺失值后:")
print(df_bfill)

刪除缺失率高的列

df_dropped_cols = df.dropna(axis=1, thresh=len(df) * 0.5)  
print("\n刪除缺失率高的列后:")
print(df_dropped_cols)

重復值處理

刪除重復值

df_deduplicated = df.drop_duplicates()
print("\n刪除重復值后:")
print(df_deduplicated)

標記重復值

df['is_duplicate'] = df.duplicated()
print("\n標記重復值后:")
print(df)

異常值處理

替換異常值

df['price'] = df['price'].apply(lambda x: x if 0 <= x <= 100 else df['price'].mean())
print("\n替換異常值后:")
print(df)

標記異常值

df['is_outlier'] = df['price'].apply(lambda x: 1 if x < 0 or x > 100 else 0)
print("\n標記異常值后:")
print(df)

數(shù)據(jù)類型轉換

轉換為整數(shù)類型

df['price'] = df['price'].astype(int)
print("\n轉換為整數(shù)后:")
print(df)

轉換為日期類型

df['date'] = pd.to_datetime(df['date'], errors='coerce')
print("\n轉換為日期類型后:")
print(df)

文本清洗

去掉兩端空格

df['title'] = df['title'].str.strip()
print("\n去掉兩端空格后:")
print(df)

替換特定字符

df['title'] = df['title'].str.replace('[^a-zA-Z0-9\s]', '', regex=True)
print("\n替換特定字符后:")
print(df)

轉換為小寫

df['title'] = df['title'].str.lower()
print("\n轉換為小寫后:")
print(df)

數(shù)據(jù)分組統(tǒng)計

按列分組求均值

grouped = df.groupby('author')['price'].mean()
print("\n按作者分組的平均價格:")
print(grouped)

數(shù)據(jù)分箱

按價格分箱

bins = [0, 10, 20, 30]
labels = ['低', '中', '高']
df['price_level'] = pd.cut(df['price'], bins=bins, labels=labels, right=False)
print("\n按價格分箱后:")
print(df)

數(shù)據(jù)標準化

歸一化處理

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df['price_scaled'] = scaler.fit_transform(df[['price']])
print("\n歸一化后的數(shù)據(jù):")
print(df)

到此這篇關于一文詳解Python中數(shù)據(jù)清洗與處理的常用方法的文章就介紹到這了,更多相關Python數(shù)據(jù)清洗與處理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論