在Python中,清洗爬蟲數據通常涉及以下幾個步驟:
strip()
方法去除字符串兩端的空白字符。re
模塊)來去除或替換不需要的特殊字符。下面是一個簡單的示例,展示如何使用Python清洗爬蟲數據:
import re
import pandas as pd
# 示例數據
data = [
{'name': 'John', 'age': '30', 'email': 'john@example.com'},
{'name': 'Jane', 'age': '25', 'email': 'jane@example.com'},
{'name': 'Doe', 'age': '', 'email': 'doe@example.com'},
{'name': 'Alice', 'age': '35', 'email': 'alice@example.com'},
]
# 創建DataFrame
df = pd.DataFrame(data)
# 去除空白字符
df['name'] = df['name'].str.strip()
df['age'] = df['age'].str.strip()
# 去除特殊字符(如果有)
df['email'] = df['email'].str.replace(r'[^a-zA-Z0-9@._-]+', '', regex=True)
# 統一編碼格式
df = df.applymap(lambda x: x.encode('utf-8').decode('utf-8') if isinstance(x, str) else x)
# 處理缺失值
df['age'].fillna(df['age'].mean(), inplace=True) # 用平均年齡填充缺失的年齡
# 數據類型轉換
df['age'] = pd.to_numeric(df['age'], errors='coerce') # 將年齡轉換為數字,無法轉換的設置為NaN
# 標準化數據格式
df['email'] = pd.to_datetime(df['email'], format='%Y-%m-%d', errors='coerce') # 假設電子郵件是日期格式
# 去重
df.drop_duplicates(inplace=True)
# 數據篩選和排序
filtered_df = df[df['age'] > 25] # 篩選年齡大于25的行
sorted_df = filtered_df.sort_values(by='age', ascending=False) # 按年齡降序排序
print(sorted_df)
這個示例展示了如何使用pandas庫來清洗和處理爬蟲數據。根據你的具體需求,你可能需要調整這些步驟和方法。