首頁 > 軟體

pandas預處理部分地區資料案例

2023-01-20 14:01:02

資料淨化的任務是過濾那些不符合要求的資料,將過濾的結果交給業務主管部門,確認是否過濾掉還是由業務單位修正之後再進行抽取。不符合要求的資料主要是有不完整的資料、錯誤的資料、重複的資料三大類。資料淨化是與問卷稽核不同,錄入後的資料清理一般是由計算機而不是人工完成。

資料淨化主要是處理缺失資料、重複資料、錯誤資料等。

處理缺失值常用方法:

  • 刪除資料:根據缺失情況,按行刪除或者按列刪除
  • 度量填補缺失值:可以根據資料屬性,採用均值、中位數、眾數等中心度量值來填補缺失資料
  • 預測填補缺失值:可以將缺失屬性作為因變數,建立分類或迴歸模型,對缺失值進行建模填補

案例一:預處理部分地區資料

  • 讀取北京地區的資料
  • 讀取天津地區的資料
  • 檢測file_data_bjinfo中的資料,返回True的表示是重複資料
  • 檢測file_data_tjinfo中的資料,返回True的表示是重複資料
  • 對北京地區的資料,刪除重複值
  • 檢測天津地區的資料是否存在缺失值
  • 計算天津地區常住人口的平均數,設定float型別,並保留兩位小數,並且以字典對映的方式進行填充
  • 對北京地區資訊進行異常值檢測。並且用箱型圖進行表示
  • 對天津地區資訊進行異常值檢測。並且用箱型圖進行表示
  • 對兩地資料進行合併
# 讀取北京地區的資料
import pandas as pd
with open("北京地區資訊.csv") as f:
    file_data_bjinfo = pd.read_csv(f)
# 讀取天津地區的資料
with open("天津地區資訊.csv") as f:
    file_data_tjinfo = pd.read_csv(f)
# 檢測file_data_bjinfo中的資料,返回True的表示是重複資料
dup_bj = file_data_bjinfo.duplicated()
print(dup_bj)

# 檢測file_data_tjinfo中的資料,返回True的表示是重複資料
dup_tj = file_data_tjinfo.duplicated()
print(dup_tj)

# 對北京地區的資料,刪除重複值
drop_dup_bj = file_data_bjinfo.drop_duplicates()
print(drop_dup_bj)
# 檢測天津地區的資料是否存在缺失值
print(pd.isnull(file_data_tjinfo))
# 計算天津地區常住人口的平均數,設定float型別,並保留兩位小數
avg = float("{:.2f}".format(file_data_tjinfo['常住人口(萬人)'].mean()))
# 以字典對映的方式進行填充
values = {'常住人口(萬人)':avg}
file_data_tjinfo = file_data_tjinfo.fillna(value=values)
print(file_data_tjinfo)
# 對北京地區資訊進行異常值檢測。並且用箱型圖進行表示
from matplotlib import pyplot as plt 

plt.rcParams['font.family']=['STFangsong']  # 用來正常顯示中文標籤
plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負號
file_data_bjinfo.boxplot()
plt.show()

# 對天津地區資訊進行異常值檢測。並且用箱型圖進行表示
file_data_tjinfo.boxplot()
plt.show()

# 對兩地資料進行合併
print(pd.concat([file_data_bjinfo,file_data_tjinfo],join='inner',axis=0,ignore_index=True))

資料

北京地區資訊.csv

省級單位,地級單位,縣級單位,區劃型別,行政面積(K㎡),戶籍人口(萬人),男性,女性,GDP(億元),常住人口(萬人)
北京,北京,西城區,市轄區,51,146.47,72.88,73.59,3602.36,125.9
北京,北京,東城區,市轄區,42,97.41,47.91,49.5,2061.8,87.8
北京,北京,豐臺區,市轄區,306,115.33,58.39,56.95,1297.03,225.5
北京,北京,西城區,市轄區,51,146.47,72.88,73.59,3602.36,125.9
北京,北京,朝陽區,市轄區,455,210.91,105.43,105.48,5171.03,385.6
北京,北京,房山區,市轄區,1990,81.28,40.76,40.52,606.61,109.6
北京,北京,豐臺區,市轄區,306,115.33,58.39,56.95,1297.03,225.5
北京,北京,石景山區,市轄區,84,38.69,19.87,18.82,482.14,63.4
北京,北京,海淀區,市轄區,431,240.2,120.08,120.12,5395.16,359.3
北京,北京,房山區,市轄區,1990,81.28,40.76,40.52,606.61,109.6
北京,北京,通州區,市轄區,906,74.68,37.08,37.6,674.81,142.8
北京,北京,順義區,市轄區,1020,62.74,31.12,31.61,1591.6,107.5
北京,北京,昌平區,市轄區,1344,61.14,30.72,30.41,753.39,201
北京,北京,大興區,市轄區,1036,68.38,34.02,34.36,1796.95,169.4
北京,北京,門頭溝區,市轄區,1451,25.12,12.8,12.32,157.86,31.1
北京,北京,懷柔區,市轄區,2123,28.29,14.13,14.16,259.41,39.3
北京,北京,平谷區,市轄區,950,40.2,20.22,19.98,218.31,43.7
北京,北京,密雲區,市轄區,2229,43.59,21.77,21.82,251.13,48.3
北京,北京,延慶區,市轄區,1994,28.42,14.32,14.11,122.66,32.7

天津地區資訊.csv

省級單位,地級單位,縣級單位,區劃型別,行政面積(K㎡),戶籍人口(萬人),男性,女性,GDP(億元),常住人口(萬人)
天津,天津,和平區,市轄區,10,42.32,20.37,21.95,802.62,35.19
天津,天津,河東區,市轄區,39,75.79,38.06,37.73,290.98,97.61
天津,天津,河西區,市轄區,37,83.2,40.83,42.37,819.85,99.25
天津,天津,南開區,市轄區,39,87.28,43.3,43.98,652.09,114.55
天津,天津,河北區,市轄區,27,63.42,31.86,31.56,415.67,89.24
天津,天津,紅橋區,市轄區,21,51.66,25.93,25.73,208.16,56.69
天津,天津,東麗區,市轄區,460,37.7,18.83,18.87,927.08,76.04
天津,天津,西青區,市轄區,545,14.85,19.85,20.38,1040.27,85.37
天津,天津,津南區,市轄區,401,44.83,22.35,22.48,810.16,89.41
天津,天津,北辰區,市轄區,478,40.39,20.09,20.3,1058.14,
天津,天津,武清區,市轄區,1570,92.27,45.86,46.41,1151.65,119.96
天津,天津,寶坻區,市轄區,1523,71.1,35.72,35.39,684.07,92.98
天津,天津,濱海新區,市轄區,2270,128.18,66.04,62.14,6654,299.42
天津,天津,寧河區,市轄區,1414,40,20.21,19.79,525.37,49.57
天津,天津,靜海區,市轄區,1476,59.79,30.35,29.44,667.83,79.29
天津,天津,薊州區,市轄區,1593,86.24,43.86,42.38,392.55,91.15

到此這篇關於pandas預處理部分地區資料案例的文章就介紹到這了,更多相關pandas預處理資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com