เดจเต‹เดŸเตเดŸเตเดชเดพเดกเต-เดšเต€เดฑเตเดฑเต เดทเต€เดฑเตเดฑเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ

เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดกเดพเดฑเตเดฑเดพ เดธเดฏเตปเดธเต เดฎเต‡เด–เดฒเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เตเดจเตเดจ เด†เดณเตเด•เตพเด•เตเด•เต เดคเด™เตเด™เดณเต† เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เดพเดฐเตเดฏเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฏเดฅเดพเตผเดคเตเดฅ เดชเตเดฐเดคเต€เด•เตเดทเด•เดณเต‡เด•เตเด•เดพเตพ เด•เตเดฑเดตเดพเดฃเต. เด‡เดชเตเดชเต‹เตพ เด…เดตเตผ เดฐเดธเด•เดฐเดฎเดพเดฏ เดจเตเดฏเต‚เดฑเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เตพ เดŽเดดเตเดคเตเดฎเต†เดจเตเดจเตเด‚ เด…เดฏเตบ เดฎเดพเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดตเต‹เดฏเตโ€Œเดธเต เด…เดธเดฟเดธเตเดฑเตเดฑเดจเตเดฑเดฟเดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเตเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเดพเดฎเตเดชเดคเตเดคเดฟเด• เดตเดฟเดชเดฃเดฟเดฏเดฟเดฒเต† เดŽเดฒเตเดฒเดพเดตเดฐเต‡เดฏเตเด‚ เดคเต‹เตฝเดชเตเดชเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเตเด‚ เดชเดฒเดฐเตเด‚ เด•เดฐเตเดคเตเดจเตเดจเต.
เดŽเดจเตเดจเดพเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด• เดกเดพเดฑเตเดฑ เดถเดพเดธเตเดคเตเดฐเดœเตเดžเตป เดกเดพเดฑเตเดฑเดพเดงเดฟเดทเตเด เดฟเดคเดฎเดพเดฃเต, เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸเดคเตเด‚ เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฏ เด’เดฐเต เดตเดถเด‚ เด’เดฐเต เดจเตเดฏเต‚เดฑเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดฎเตเดชเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดฐเต€เดคเดฟเดฏเดฟเตฝ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดกเดพเดฑเตเดฑ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต.

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด•เต‹เดกเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเด™เตเด™เดจเต† เดตเต‡เด—เดคเตเดคเดฟเดฒเตเด‚ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเดฒเตเด‚ เดกเดพเดฑเตเดฑ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เดณเตเดŸเต† เดŸเต€เด‚ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเด‚. เด•เต‹เดกเต เดคเดฟเด•เดšเตเดšเตเด‚ เด…เดฏเดตเตเดณเตเดณเดคเดพเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดถเตเดฐเดฎเดฟเดšเตเดšเต, เดตเตเดฏเดคเตเดฏเดธเตเดค เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเตเด•เตพเด•เตเด•เต เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เดชเดฒ เดชเตเดฐเตŠเดซเดทเดฃเดฒเตเด•เตพเด•เตเด•เตเด‚ เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เด…เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เด’เดจเตเดจเตเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเดฏเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดคเตเดŸเด•เตเด•เด•เตเด•เดพเตผเด•เตเด•เต เดชเตเดคเดฟเดฏ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเด เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด•เต‚เดŸเดพเดคเต† เดตเต‡เด—เดคเตเดคเดฟเดฒเตเด‚ เด˜เดŸเดจเดพเดชเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดพ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดจเต‹เดŸเตเดŸเตเดฌเตเด•เตเด•เต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดฆเต€เตผเด˜เดจเดพเดณเดพเดฏเดฟ เดธเตเดตเดชเตเดจเด‚ เด•เดพเดฃเตเดจเตเดจ เด†เตผเด•เตเด•เตเด‚ เด•เต‹เดกเต เดชเด•เตผเดคเตเดคเดฟ เด…เดคเต เดธเตเดตเดฏเด‚ เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟเดฏ เดจเต‹เดŸเตเดŸเตเดฌเตเด•เตเด•เต Github-เตฝ เดจเดฟเดจเตเดจเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•.

เดžเด™เตเด™เตพเด•เตเด•เต เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเต เดฒเดญเดฟเดšเตเดšเต. เด‡เดจเดฟ เดŽเดจเตเดคเต เดšเต†เดฏเตเดฏเดฃเด‚?

เด…เดคเดฟเดจเดพเตฝ, เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต: เดจเดฎเตเดฎเตพ เดŽเดจเตเดคเดพเดฃเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดšเดฟเดคเตเดฐเด‚. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดตเตเดฏเดคเตเดฏเดธเตเดค เดกเดพเดฑเตเดฑ เดคเดฐเด™เตเด™เดณเต† เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดชเดพเดฃเตเดŸเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

import pandas as pd #ะธะผะฟะพั€ั‚ะธั€ัƒะตะผ pandas
import numpy as np  #ะธะผะฟะพั€ั‚ะธั€ัƒะตะผ numpy
df = pd.read_csv("AB_NYC_2019.csv") #ั‡ะธั‚ะฐะตะผ ะดะฐั‚ะฐัะตั‚ ะธ ะทะฐะฟะธัั‹ะฒะฐะตะผ ะฒ ะฟะตั€ะตะผะตะฝะฝัƒัŽ df

df.head(3) #ัะผะพั‚ั€ะธะผ ะฝะฐ ะฟะตั€ะฒั‹ะต 3 ัั‚ั€ะพั‡ะบะธ, ั‡ั‚ะพะฑั‹ ะฟะพะฝัั‚ัŒ, ะบะฐะบ ะฒั‹ะณะปัะดัั‚ ะทะฝะฐั‡ะตะฝะธั

เดจเต‹เดŸเตเดŸเตเดชเดพเดกเต-เดšเต€เดฑเตเดฑเต เดทเต€เดฑเตเดฑเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ

df.info() #ะ”ะตะผะพะฝัั‚ั€ะธั€ัƒะตะผ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ะพ ะบะพะปะพะฝะบะฐั…

เดจเต‹เดŸเตเดŸเตเดชเดพเดกเต-เดšเต€เดฑเตเดฑเต เดทเต€เดฑเตเดฑเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ

เด•เต‹เดณเด‚ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดจเต‹เด•เตเด•เดพเด‚:

  1. เด“เดฐเต‹ เดจเดฟเดฐเดฏเดฟเดฒเต†เดฏเตเด‚ เดตเดฐเดฟเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดฎเตŠเดคเตเดคเด‚ เดตเดฐเดฟเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดตเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเตเดฃเตเดŸเต‹?
  2. เด“เดฐเต‹ เด•เต‹เดณเดคเตเดคเดฟเดฒเต†เดฏเตเด‚ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดธเดพเดฐเดพเด‚เดถเด‚ เดŽเดจเตเดคเดพเดฃเต?
  3. เด…เดคเดฟเดจเดพเดฏเดฟ เดชเตเดฐเดตเดšเดจเด™เตเด™เตพ เดจเดŸเดคเตเดคเดพเตป เดเดคเต เด•เต‹เดณเดฎเดพเดฃเต เดžเด™เตเด™เตพ เดฒเด•เตเดทเตเดฏเดฎเดฟเดŸเตเดจเตเดจเดคเต?

เดˆ เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เด‰เดคเตเดคเดฐเด™เตเด™เตพ เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเต เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด…เดŸเตเดคเตเดค เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดเด•เดฆเต‡เดถเด‚ เด’เดฐเต เดชเตเดฒเดพเตป เดตเดฐเดฏเตเด•เตเด•เดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด‚.

เด•เต‚เดŸเดพเดคเต†, เด“เดฐเต‹ เดจเดฟเดฐเดฏเดฟเดฒเต†เดฏเตเด‚ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด†เดดเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเด•เตเด•เต เดชเดพเดฃเตเดŸเด•เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจ () เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดˆ เดซเด‚เด—เตโ€Œเดทเดจเตเดฑเต† เดชเต‹เดฐเดพเดฏเตเดฎ เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดณเตเดณ เดจเดฟเดฐเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเดพเดฃเต. เดžเด™เตเด™เตพ เด…เดตเดฐเต† เดชเดฟเดจเตเดจเต€เดŸเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเด‚.

df.describe()

เดจเต‹เดŸเตเดŸเตเดชเดพเดกเต-เดšเต€เดฑเตเดฑเต เดทเต€เดฑเตเดฑเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ

เดฎเดพเดœเดฟเด•เต เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฃเด‚

เดจเดฎเตเด•เตเด•เต เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดฟเดฒเตเดฒเดพเดคเตเดคเดคเต เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚:

import seaborn as sns
sns.heatmap(df.isnull(),yticklabels=False,cbar=False,cmap='viridis')

เดจเต‹เดŸเตเดŸเตเดชเดพเดกเต-เดšเต€เดฑเตเดฑเต เดทเต€เดฑเตเดฑเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ

เด‡เดคเต เดฎเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เด•เดพเดดเตเดšเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เด•เต‚เดŸเตเดคเตฝ เดฐเดธเด•เดฐเดฎเดพเดฏ เด•เดพเดฐเตเดฏเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด‚

เดจเดฎเตเด•เตเด•เต เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เดพเด‚, เดธเดพเดงเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ, เดŽเดฒเตเดฒเดพ เดตเดฐเดฟเด•เดณเดฟเดฒเตเด‚ เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดฎเดพเดคเตเดฐเดฎเตเดณเตเดณ เดจเดฟเดฐเด•เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด• (เด…เดต เดซเดฒเดคเตเดคเต† เด’เดฐเต เดคเดฐเดคเตเดคเดฟเดฒเตเด‚ เดฌเดพเดงเดฟเด•เตเด•เดฟเดฒเตเดฒ):

df = df[[c for c
        in list(df)
        if len(df[c].unique()) > 1]] #ะŸะตั€ะตะทะฐะฟะธัั‹ะฒะฐะตะผ ะดะฐั‚ะฐัะตั‚, ะพัั‚ะฐะฒะปัั ั‚ะพะปัŒะบะพ ั‚ะต ะบะพะปะพะฝะบะธ, ะฒ ะบะพั‚ะพั€ั‹ั… ะฑะพะปัŒัˆะต ะพะดะฝะพะณะพ ัƒะฝะธะบะฐะปัŒะฝะพะณะพ ะทะฝะฐั‡ะตะฝะธั

เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดฑเตเดฑเต เดฒเตˆเดจเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต (เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดฒเตˆเดจเตเด•เดณเดฟเตฝ เด’เดจเตเดจเดฟเดจเตเดฑเต† เด…เดคเต‡ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เด…เดคเต‡ เดตเดฟเดตเดฐเด™เตเด™เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจ เดตเดฐเดฟเด•เตพ) เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เดธเตเดตเดฏเด‚ เดชเดฐเดฟเดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต, เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดตเดฟเดœเดฏเดตเตเด‚:

df.drop_duplicates(inplace=True) #ะ”ะตะปะฐะตะผ ัั‚ะพ, ะตัะปะธ ัั‡ะธั‚ะฐะตะผ ะฝัƒะถะฝั‹ะผ.
                                 #ะ’ ะฝะตะบะพั‚ะพั€ั‹ั… ะฟั€ะพะตะบั‚ะฐั… ัƒะดะฐะปัั‚ัŒ ั‚ะฐะบะธะต ะดะฐะฝะฝั‹ะต ั ัะฐะผะพะณะพ ะฝะฐั‡ะฐะปะฐ ะฝะต ัั‚ะพะธั‚.

เดžเด™เตเด™เตพ เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเดฟเดจเต† เดฐเดฃเตเดŸเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เตเดจเตเดจเต: เด’เดจเตเดจเต เด—เตเดฃเดชเดฐเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดณเตเดณเดคเตเด‚ เดฎเดฑเตเดฑเตŠเดจเตเดจเต เด…เดณเดตเต

เด‡เดตเดฟเดŸเต† เดจเดฎเตเดฎเตพ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดตเตเดฏเด•เตเดคเดค เดตเดฐเตเดคเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต: เด—เตเดฃเดชเดฐเดตเตเด‚ เด…เดณเดตเตเดชเดฐเดตเตเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดŸ เดกเดพเดฑเตเดฑเดฏเตเดณเตเดณ เดตเดฐเดฟเด•เตพ เดชเดฐเดธเตเดชเดฐเด‚ เดตเดณเดฐเต† เดชเดฐเดธเตเดชเดฐเดฌเดจเตเดงเดฟเดคเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดžเด™เตเด™เตพ เดŽเดจเตเดคเดพเดฃเต เดฌเดฒเดฟเดฏเตผเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเต เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต - เดจเดทเตโ€ŒเดŸเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดตเดฐเดฟเด•เดณเตเด‚, เด…เดตเดฏเตเดŸเต† เด’เดฐเต เดญเดพเด—เด‚ เดฎเดพเดคเตเดฐเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดšเดฟเดฒ เด•เต‹เดณเด™เตเด™เตพ. เดตเดฐเดฟเด•เตพ เดชเดฐเดธเตเดชเดฐเดฌเดจเตเดงเดฟเดคเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเดฟเดจเต† เดฐเดฃเตเดŸเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เดŽเดฒเตเดฒเดพ เด…เดตเด•เดพเดถเดตเตเดฎเตเดฃเตเดŸเต. เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดจเดทเตโ€ŒเดŸเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเต† เด—เตเดฃเดชเดฐเดฎเดพเดฏเตเด‚ เด…เดณเดตเดฟเดฒเตเด‚ เดชเดฐเดธเตเดชเดฐเด‚ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดคเตเดค เดตเดฐเดฟเด•เตพ เดจเดฟเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเดฟเดจเต† เดฐเดฃเตเดŸเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เตเด•.

df_numerical = df.select_dtypes(include = [np.number])
df_categorical = df.select_dtypes(exclude = [np.number])

เดˆ เดฐเดฃเตเดŸเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดคเดฐเด‚ เดกเดพเดฑเตเดฑ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฃเต เดžเด™เตเด™เตพ เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต - เด‡เดคเต เดจเดฎเตเดฎเตเดŸเต† เดœเต€เดตเดฟเดคเดคเตเดคเต† เดŽเดคเตเดฐเดคเตเดคเต‹เดณเด‚ เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดชเดฟเดจเตเดจเต€เดŸเต เดจเดฎเตเด•เตเด•เต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด‚.

เดžเด™เตเด™เตพ เด•เตเดตเดพเดฃเตเดŸเดฟเดฑเตเดฑเต‡เดฑเตเดฑเต€เดตเต เดกเดพเดฑเตเดฑเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เด•เตเดตเดพเดฃเตเดŸเดฟเดฑเตเดฑเต‡เดฑเตเดฑเต€เดตเต เดกเดพเดฑเตเดฑเดฏเดฟเตฝ "เดธเตเดชเตˆ เด•เต‹เดณเด™เตเด™เตพ" เด‰เดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดจเดฎเตเดฎเตพ เด†เดฆเตเดฏเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต. เด•เตเดตเดพเดฃเตเดŸเดฟเดฑเตเดฑเต‡เดฑเตเดฑเต€เดตเต เดกเดพเดฑเตเดฑเดฏเดพเดฏเดฟ เดธเตเดตเดฏเด‚ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดŽเดจเตเดจเดพเตฝ เด—เตเดฃเดชเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฒเดพเดฃเต เดžเด™เตเด™เตพ เดˆ เด•เต‹เดณเด™เตเด™เดณเต† เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเต.

เดจเดฎเตเด•เตเด•เต เด…เดตเดฐเต† เดŽเด™เตเด™เดจเต† เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเด‚? เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดจเดฟเด™เตเด™เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดธเตเดตเดญเดพเดตเดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดชเตŠเดคเตเดตเต† เด…เดคเตเดคเดฐเด‚ เดจเดฟเดฐเด•เตพเด•เตเด•เต เด…เดฆเตเดตเดฟเดคเต€เดฏ เดกเดพเดฑเตเดฑ เด•เตเดฑเดตเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚ (3-10 เด…เดฆเตเดตเดฟเดคเต€เดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† เดฎเต‡เด–เดฒเดฏเดฟเตฝ).

print(df_numerical.nunique())

เดžเด™เตเด™เตพ เดธเตเดชเตˆ เด•เต‹เดณเด™เตเด™เตพ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดžเตเดžเตเด•เดดเดฟเดžเตเดžเดพเตฝ, เดžเด™เตเด™เตพ เด…เดตเดฏเต† เด•เตเดตเดพเดฃเตเดŸเดฟเดฑเตเดฑเต‡เดฑเตเดฑเต€เดตเต เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด—เตเดฃเดชเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด‚:

spy_columns = df_numerical[['ะบะพะปะพะฝะบะฐ1', 'ะบะพะปะพะบะฐ2', 'ะบะพะปะพะฝะบะฐ3']]#ะฒั‹ะดะตะปัะตะผ ะบะพะปะพะฝะบะธ-ัˆะฟะธะพะฝั‹ ะธ ะทะฐะฟะธัั‹ะฒะฐะตะผ ะฒ ะพั‚ะดะตะปัŒะฝัƒัŽ dataframe
df_numerical.drop(labels=['ะบะพะปะพะฝะบะฐ1', 'ะบะพะปะพะบะฐ2', 'ะบะพะปะพะฝะบะฐ3'], axis=1, inplace = True)#ะฒั‹ั€ะตะทะฐะตะผ ัั‚ะธ ะบะพะปะพะฝะบะธ ะธะท ะบะพะปะธั‡ะตัั‚ะฒะตะฝะฝั‹ั… ะดะฐะฝะฝั‹ั…
df_categorical.insert(1, 'ะบะพะปะพะฝะบะฐ1', spy_columns['ะบะพะปะพะฝะบะฐ1']) #ะดะพะฑะฐะฒะปัะตะผ ะฟะตั€ะฒัƒัŽ ะบะพะปะพะฝะบัƒ-ัˆะฟะธะพะฝ ะฒ ะบะฐั‡ะตัั‚ะฒะตะฝะฝั‹ะต ะดะฐะฝะฝั‹ะต
df_categorical.insert(1, 'ะบะพะปะพะฝะบะฐ2', spy_columns['ะบะพะปะพะฝะบะฐ2']) #ะดะพะฑะฐะฒะปัะตะผ ะฒั‚ะพั€ัƒัŽ ะบะพะปะพะฝะบัƒ-ัˆะฟะธะพะฝ ะฒ ะบะฐั‡ะตัั‚ะฒะตะฝะฝั‹ะต ะดะฐะฝะฝั‹ะต
df_categorical.insert(1, 'ะบะพะปะพะฝะบะฐ3', spy_columns['ะบะพะปะพะฝะบะฐ3']) #ะดะพะฑะฐะฒะปัะตะผ ั‚ั€ะตั‚ัŒัŽ ะบะพะปะพะฝะบัƒ-ัˆะฟะธะพะฝ ะฒ ะบะฐั‡ะตัั‚ะฒะตะฝะฝั‹ะต ะดะฐะฝะฝั‹ะต

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดžเด™เตเด™เตพ เด•เตเดตเดพเดฃเตเดŸเดฟเดฑเตเดฑเต‡เดฑเตเดฑเต€เดตเต เดกเดพเดฑเตเดฑเดฏเต† เด—เตเดฃเดชเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เด…เดคเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดจเดฎเตเด•เตเด•เต เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด†เดฆเตเดฏเดคเตเดคเต† เด•เดพเดฐเตเดฏเด‚ (NaN, เดšเดฟเดฒ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ 0 เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดพเดฏเดฟ เด…เด‚เด—เต€เด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚).

for i in df_numerical.columns:
    print(i, df[i][df[i]==0].count())

เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ, เดเดคเต เดจเดฟเดฐเด•เดณเดฟเตฝ เดชเต‚เดœเตเดฏเด™เตเด™เตพ เดจเดทเตโ€ŒเดŸเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต: เด‡เดคเต เดกเดพเดฑเตเดฑ เดŽเด™เตเด™เดจเต† เดถเต‡เด–เดฐเดฟเดšเตเดšเต เดŽเดจเตเดจเดคเดพเดฃเต‹? เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‡เดคเต เดกเดพเดฑเตเดฑ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดฎเต‹? เดˆ เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เต เด“เดฐเต‹ เด•เต‡เดธเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เด‰เดคเตเดคเดฐเด‚ เดจเตฝเด•เดฃเด‚.

เด…เดคเดฟเดจเดพเตฝ, เดชเต‚เดœเตเดฏเด™เตเด™เตพ เด‰เดณเตเดณเดฟเดŸเดคเตเดคเต เดžเด™เตเด™เตพเด•เตเด•เต เดกเดพเดฑเตเดฑ เดจเดทเตโ€ŒเดŸเดฎเดพเดฏเต‡เด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดทเตโ€ŒเดŸเดฎเดพเดฏ เดˆ เดกเดพเดฑเตเดฑเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดชเดฟเดจเตเดจเต€เดŸเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เตพ เดชเต‚เดœเตเดฏเด™เตเด™เดณเต† NaN เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เดฃเด‚:

df_numerical[["ะบะพะปะพะฝะบะฐ 1", "ะบะพะปะพะฝะบะฐ 2"]] = df_numerical[["ะบะพะปะพะฝะบะฐ 1", "ะบะพะปะพะฝะบะฐ 2"]].replace(0, nan)

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดกเดพเดฑเตเดฑ เดจเดทเตโ€ŒเดŸเดฎเดพเดฏเดคเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚:

sns.heatmap(df_numerical.isnull(),yticklabels=False,cbar=False,cmap='viridis') # ะœะพะถะฝะพ ั‚ะฐะบะถะต ะฒะพัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั df_numerical.info()

เดจเต‹เดŸเตเดŸเตเดชเดพเดกเต-เดšเต€เดฑเตเดฑเต เดทเต€เดฑเตเดฑเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ

เด‡เดตเดฟเดŸเต† เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดŸ เดจเดฟเดฐเด•เตพเด•เตเด•เตเดณเตเดณเดฟเดฒเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดฎเดžเตเดž เดจเดฟเดฑเดคเตเดคเดฟเตฝ เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเดฃเด‚. เด‡เดชเตเดชเต‹เตพ เดคเดฎเดพเดถ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต - เดˆ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดŽเด™เตเด™เดจเต† เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเด‚? เดˆ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเต‹ เดจเดฟเดฐเด•เดณเต‹ เด‰เดณเตเดณ เดตเดฐเดฟเด•เตพ เดžเดพเตป เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฃเต‹? เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดˆ เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเต‚เดฐเดฟเดชเตเดชเดฟเด•เตเด•เดฃเต‹?

เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเดคเตเดตเดคเตเดคเดฟเตฝ เดŽเดจเตเดคเตเดšเต†เดฏเตเดฏเดฃเดฎเต†เดจเตเดจเต เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดเด•เดฆเต‡เดถ เดกเดฏเด—เตเดฐเด‚ เด‡เดคเดพ:

เดจเต‹เดŸเตเดŸเตเดชเดพเดกเต-เดšเต€เดฑเตเดฑเต เดทเต€เดฑเตเดฑเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ

0. เด…เดจเดพเดตเดถเตเดฏ เด•เต‹เดณเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด•

df_numerical.drop(labels=["ะบะพะปะพะฝะบะฐ1","ะบะพะปะพะฝะบะฐ2"], axis=1, inplace=True)

1. เดˆ เดจเดฟเดฐเดฏเดฟเดฒเต† เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ 50% เตฝ เด•เต‚เดŸเตเดคเดฒเดพเดฃเต‹?

print(df_numerical.isnull().sum() / df_numerical.shape[0] * 100)

df_numerical.drop(labels=["ะบะพะปะพะฝะบะฐ1","ะบะพะปะพะฝะบะฐ2"], axis=1, inplace=True)#ะฃะดะฐะปัะตะผ, ะตัะปะธ ะบะฐะบะฐั-ั‚ะพ ะบะพะปะพะฝะบะฐ ะธะผะตะตั‚ ะฑะพะปัŒัˆะต 50 ะฟัƒัั‚ั‹ั… ะทะฝะฐั‡ะตะฝะธะน

2. เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดณเตเดณ เดตเดฐเดฟเด•เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•

df_numerical.dropna(inplace=True)#ะฃะดะฐะปัะตะผ ัั‚ั€ะพั‡ะบะธ ั ะฟัƒัั‚ั‹ะผะธ ะทะฝะฐั‡ะตะฝะธัะผะธ, ะตัะปะธ ะฟะพั‚ะพะผ ะพัั‚ะฐะฝะตั‚ัั ะดะพัั‚ะฐั‚ะพั‡ะฝะพ ะดะฐะฝะฝั‹ั… ะดะปั ะพะฑัƒั‡ะตะฝะธั

3.1 เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

import random #ะธะผะฟะพั€ั‚ะธั€ัƒะตะผ random
df_numerical["ะบะพะปะพะฝะบะฐ"].fillna(lambda x: random.choice(df[df[column] != np.nan]["ะบะพะปะพะฝะบะฐ"]), inplace=True) #ะฒัั‚ะฐะฒะปัะตะผ ั€ะฐะฝะดะพะผะฝั‹ะต ะทะฝะฐั‡ะตะฝะธั ะฒ ะฟัƒัั‚ั‹ะต ะบะปะตั‚ะบะธ ั‚ะฐะฑะปะธั†ั‹

3.2 เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

from sklearn.impute import SimpleImputer #ะธะผะฟะพั€ั‚ะธั€ัƒะตะผ SimpleImputer, ะบะพั‚ะพั€ั‹ะน ะฟะพะผะพะถะตั‚ ะฒัั‚ะฐะฒะธั‚ัŒ ะทะฝะฐั‡ะตะฝะธั
imputer = SimpleImputer(strategy='constant', fill_value="<ะ’ะฐัˆะต ะทะฝะฐั‡ะตะฝะธะต ะทะดะตััŒ>") #ะฒัั‚ะฐะฒะปัะตะผ ะพะฟั€ะตะดะตะปะตะฝะฝะพะต ะทะฝะฐั‡ะตะฝะธะต ั ะฟะพะผะพั‰ัŒัŽ SimpleImputer
df_numerical[["ะฝะพะฒะฐั_ะบะพะปะพะฝะบะฐ1",'ะฝะพะฒะฐั_ะบะพะปะพะฝะบะฐ2','ะฝะพะฒะฐั_ะบะพะปะพะฝะบะฐ3']] = imputer.fit_transform(df_numerical[['ะบะพะปะพะฝะบะฐ1', 'ะบะพะปะพะฝะบะฐ2', 'ะบะพะปะพะฝะบะฐ3']]) #ะŸั€ะธะผะตะฝัะตะผ ัั‚ะพ ะดะปั ะฝะฐัˆะตะน ั‚ะฐะฑะปะธั†ั‹
df_numerical.drop(labels = ["ะบะพะปะพะฝะบะฐ1","ะบะพะปะพะฝะบะฐ2","ะบะพะปะพะฝะบะฐ3"], axis = 1, inplace = True) #ะฃะฑะธั€ะฐะตะผ ะบะพะปะพะฝะบะธ ัะพ ัั‚ะฐั€ั‹ะผะธ ะทะฝะฐั‡ะตะฝะธัะผะธ

3.3 เดถเดฐเดพเดถเดฐเดฟ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดเดฑเตเดฑเดตเตเด‚ เดชเดคเดฟเดตเต เดฎเต‚เดฒเตเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•

from sklearn.impute import SimpleImputer #ะธะผะฟะพั€ั‚ะธั€ัƒะตะผ SimpleImputer, ะบะพั‚ะพั€ั‹ะน ะฟะพะผะพะถะตั‚ ะฒัั‚ะฐะฒะธั‚ัŒ ะทะฝะฐั‡ะตะฝะธั
imputer = SimpleImputer(strategy='mean', missing_values = np.nan) #ะฒะผะตัั‚ะพ mean ะผะพะถะฝะพ ั‚ะฐะบะถะต ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ most_frequent
df_numerical[["ะฝะพะฒะฐั_ะบะพะปะพะฝะบะฐ1",'ะฝะพะฒะฐั_ะบะพะปะพะฝะบะฐ2','ะฝะพะฒะฐั_ะบะพะปะพะฝะบะฐ3']] = imputer.fit_transform(df_numerical[['ะบะพะปะพะฝะบะฐ1', 'ะบะพะปะพะฝะบะฐ2', 'ะบะพะปะพะฝะบะฐ3']]) #ะŸั€ะธะผะตะฝัะตะผ ัั‚ะพ ะดะปั ะฝะฐัˆะตะน ั‚ะฐะฑะปะธั†ั‹
df_numerical.drop(labels = ["ะบะพะปะพะฝะบะฐ1","ะบะพะปะพะฝะบะฐ2","ะบะพะปะพะฝะบะฐ3"], axis = 1, inplace = True) #ะฃะฑะธั€ะฐะตะผ ะบะพะปะพะฝะบะธ ัะพ ัั‚ะฐั€ั‹ะผะธ ะทะฝะฐั‡ะตะฝะธัะผะธ

3.4 เดฎเดฑเตเดฑเตŠเดฐเต เดฎเต‹เดกเตฝ เด•เดฃเด•เตเด•เดพเด•เตเด•เดฟเดฏ เดฎเต‚เดฒเตเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•

เดšเดฟเดฒเดชเตเดชเต‹เตพ เดธเตโ€Œเด•เตเดฒเต‡เตบ เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดธเดฎเดพเดจเดฎเดพเดฏ เดฎเดฑเตเดฑเต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เด‰เดณเตเดณ เดฎเต‹เดกเดฒเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฑเดฟเด—เตเดฐเดทเตป เดฎเต‹เดกเดฒเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเด‚. เดธเดฎเต€เดชเดญเดพเดตเดฟเดฏเดฟเตฝ เด‡เดคเต เดŽเด™เตเด™เดจเต† เดšเต†เดฏเตเดฏเดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเด™เตเด™เดณเตเดŸเต† เดŸเต€เด‚ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดฒเต‡เด–เดจเด‚ เดธเดฎเตผเดชเตเดชเดฟเด•เตเด•เตเด‚.

เด…เดคเดฟเดจเดพเตฝ, เด‡เดชเตเดชเต‹เตพ, เด•เตเดตเดพเดฃเตเดŸเดฟเดฑเตเดฑเต‡เดฑเตเดฑเต€เดตเต เดกเดพเดฑเตเดฑเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเดฃเด‚ เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเด‚, เด•เดพเดฐเดฃเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดค เดœเต‹เดฒเดฟเด•เตพเด•เตเด•เดพเดฏเดฟ เดกเดพเดฑเตเดฑ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฒเตเด‚ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เตเด‚ เดŽเด™เตเด™เดจเต† เดฎเดฟเด•เดšเตเดšเดคเดพเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดฎเดฑเตเดฑเต เดจเดฟเดฐเดตเดงเดฟ เดธเต‚เด•เตเดทเตเดฎเดคเด•เดณเตเดฃเตเดŸเต, เด•เต‚เดŸเดพเดคเต† เด•เตเดตเดพเดฃเตเดŸเดฟเดฑเตเดฑเต‡เดฑเตเดฑเต€เดตเต เดกเดพเดฑเตเดฑเดฏเตเด•เตเด•เตเดณเตเดณ เด…เดŸเดฟเดธเตเดฅเดพเดจ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เด‡เดชเตเดชเต‹เตพ เด—เตเดฃเดชเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเต, เด…เดคเต เดžเด™เตเด™เตพ เด•เตเดตเดพเดฃเตเดŸเดฟเดฑเตเดฑเต‡เดฑเตเดฑเต€เดตเต เด†เดฏเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฒ เด˜เดŸเตเดŸเด™เตเด™เตพ เดชเดฟเดจเตเดจเต‹เดŸเตเดŸเต เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดจเต‹เดŸเตเดŸเตเดฌเตเด•เตเด•เต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดทเตเดŸเดพเดจเตเดธเดฐเดฃเด‚ เดฎเดพเดฑเตเดฑเดพเด‚, เดตเตเดฏเดคเตเดฏเดธเตเดค เดŸเดพเดธเตเด•เตเด•เตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด‡เดคเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•, เด…เดคเตเดตเดดเดฟ เดกเดพเดฑเตเดฑ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดตเดณเดฐเต† เดตเต‡เด—เดคเตเดคเดฟเตฝ เดจเดŸเด•เตเด•เตเดจเตเดจเต!

เด—เตเดฃเดชเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑ

เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ, เด—เตเดฃเดชเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเตเด•เตเด•เดพเดฏเดฟ, เด’เดฐเต เดธเตเดŸเตเดฐเดฟเด‚เด—เดฟเตฝ เดจเดฟเดจเตเดจเต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฌเตเดœเด•เตเดฑเตเดฑเดฟเตฝ) เดจเดฟเดจเตเดจเต เด’เดฐเต เดธเด‚เด–เตเดฏเดฏเดฟเดฒเต‡เด•เตเด•เต เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดตเตบ-เดนเต‹เดŸเตเดŸเต-เดŽเตปเด•เต‹เดกเดฟเด‚เด—เต เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดชเต‹เดฏเดฟเดจเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดกเดฏเด—เตเดฐเดพเดฎเตเด‚ เด•เต‹เดกเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

df_categorical.nunique()

sns.heatmap(df_categorical.isnull(),yticklabels=False,cbar=False,cmap='viridis')

เดจเต‹เดŸเตเดŸเตเดชเดพเดกเต-เดšเต€เดฑเตเดฑเต เดทเต€เดฑเตเดฑเต เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ

0. เด…เดจเดพเดตเดถเตเดฏ เด•เต‹เดณเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด•

df_categorical.drop(labels=["ะบะพะปะพะฝะบะฐ1","ะบะพะปะพะฝะบะฐ2"], axis=1, inplace=True)

1. เดˆ เดจเดฟเดฐเดฏเดฟเดฒเต† เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ 50% เตฝ เด•เต‚เดŸเตเดคเดฒเดพเดฃเต‹?

print(df_categorical.isnull().sum() / df_numerical.shape[0] * 100)

df_categorical.drop(labels=["ะบะพะปะพะฝะบะฐ1","ะบะพะปะพะฝะบะฐ2"], axis=1, inplace=True) #ะฃะดะฐะปัะตะผ, ะตัะปะธ ะบะฐะบะฐั-ั‚ะพ ะบะพะปะพะฝะบะฐ 
                                                                          #ะธะผะตะตั‚ ะฑะพะปัŒัˆะต 50% ะฟัƒัั‚ั‹ั… ะทะฝะฐั‡ะตะฝะธะน

2. เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดณเตเดณ เดตเดฐเดฟเด•เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•

df_categorical.dropna(inplace=True)#ะฃะดะฐะปัะตะผ ัั‚ั€ะพั‡ะบะธ ั ะฟัƒัั‚ั‹ะผะธ ะทะฝะฐั‡ะตะฝะธัะผะธ, 
                                   #ะตัะปะธ ะฟะพั‚ะพะผ ะพัั‚ะฐะฝะตั‚ัั ะดะพัั‚ะฐั‚ะพั‡ะฝะพ ะดะฐะฝะฝั‹ั… ะดะปั ะพะฑัƒั‡ะตะฝะธั

3.1 เด•เตเดฐเดฎเดฐเดนเดฟเดคเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

import random
df_categorical["ะบะพะปะพะฝะบะฐ"].fillna(lambda x: random.choice(df[df[column] != np.nan]["ะบะพะปะพะฝะบะฐ"]), inplace=True)

3.2 เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy='constant', fill_value="<ะ’ะฐัˆะต ะทะฝะฐั‡ะตะฝะธะต ะทะดะตััŒ>")
df_categorical[["ะฝะพะฒะฐั_ะบะพะปะพะฝะบะฐ1",'ะฝะพะฒะฐั_ะบะพะปะพะฝะบะฐ2','ะฝะพะฒะฐั_ะบะพะปะพะฝะบะฐ3']] = imputer.fit_transform(df_categorical[['ะบะพะปะพะฝะบะฐ1', 'ะบะพะปะพะฝะบะฐ2', 'ะบะพะปะพะฝะบะฐ3']])
df_categorical.drop(labels = ["ะบะพะปะพะฝะบะฐ1","ะบะพะปะพะฝะบะฐ2","ะบะพะปะพะฝะบะฐ3"], axis = 1, inplace = True)

เด…เดคเดฟเดจเดพเตฝ, เด•เตเดตเดพเดณเดฟเดฑเตเดฑเต‡เดฑเตเดฑเต€เดตเต เดกเดพเดฑเตเดฑเดฏเดฟเดฒเต† เดจเดฒเตเดฒเตเด•เดณเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดŸเตเดตเดฟเตฝ เด’เดฐเต เดนเดพเตปเดกเดฟเตฝ เดฒเดญเดฟเดšเตเดšเต. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเตฝ เด‰เดณเตเดณ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดฟเตฝ เด’เดฑเตเดฑ-เดนเต‹เดŸเตเดŸเต-เดŽเตปเด•เต‹เดกเดฟเด‚เด—เต เดจเดŸเดคเตเดคเดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต. เด‰เดฏเตผเดจเตเดจ เดจเดฟเดฒเดตเดพเดฐเดฎเตเดณเตเดณ เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดชเด เดฟเด•เตเด•เดพเดจเดพเด•เตเดฎเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เดˆ เดฐเต€เดคเดฟ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

def encode_and_bind(original_dataframe, feature_to_encode):
    dummies = pd.get_dummies(original_dataframe[[feature_to_encode]])
    res = pd.concat([original_dataframe, dummies], axis=1)
    res = res.drop([feature_to_encode], axis=1)
    return(res)

features_to_encode = ["ะบะพะปะพะฝะบะฐ1","ะบะพะปะพะฝะบะฐ2","ะบะพะปะพะฝะบะฐ3"]
for feature in features_to_encode:
    df_categorical = encode_and_bind(df_categorical, feature))

เด…เดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพ เดชเตเดฐเดคเตเดฏเต‡เด• เด—เตเดฃเดชเดฐเดตเตเด‚ เด…เดณเดตเตเดชเดฐเดตเตเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟ - เด…เดต เดตเต€เดฃเตเดŸเตเด‚ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดฎเดฏเด‚

new_df = pd.concat([df_numerical,df_categorical], axis=1)

เดžเด™เตเด™เตพ เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเตเด•เตพ เด’เดจเตเดจเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดš เดถเต‡เดทเด‚, sklearn เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต MinMaxScaler เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เดกเดพเดฑเตเดฑเดพ เดŸเตเดฐเดพเตปเดธเตเดซเต‹เตผเดฎเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เด‡เดคเต เดžเด™เตเด™เดณเตเดŸเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเต† 0 เดจเตเด‚ 1 เดจเตเด‚ เด‡เดŸเดฏเดฟเดฒเดพเด•เตเด•เตเด‚, เดญเดพเดตเดฟเดฏเดฟเตฝ เดฎเต‹เดกเดฒเดฟเดจเต† เดชเดฐเดฟเดถเต€เดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด‡เดคเต เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚.

from sklearn.preprocessing import MinMaxScaler
min_max_scaler = MinMaxScaler()
new_df = min_max_scaler.fit_transform(new_df)

เดˆ เดกเดพเดฑเตเดฑ เด‡เดชเตเดชเต‹เตพ เดŽเดจเตเดคเดฟเดจเตเด‚ เดคเดฏเตเดฏเดพเดฑเดพเดฃเต - เดจเตเดฏเต‚เดฑเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เตพ, เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต ML เด…เตฝเด—เต‹เดฐเดฟเดคเด™เตเด™เตพ เดฎเตเดคเดฒเดพเดฏเดต!

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เดŸเตˆเด‚ เดธเต€เดฐเต€เดธเต เดกเดพเดฑเตเดฑเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดžเด™เตเด™เตพ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเดคเตเดคเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เด…เดคเตเดคเดฐเด‚ เดกเดพเดฑเตเดฑเดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดšเตเดฎเดคเดฒเดฏเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพ เด…เดฒเตเดชเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดŸเต†เด•เตเดจเดฟเด•เตเด•เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚. เดญเดพเดตเดฟเดฏเดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดŸเต€เด‚ เดˆ เดตเดฟเดทเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดฒเต‡เด–เดจเด‚ เดจเต€เด•เตเด•เดฟเดตเดฏเตเด•เตเด•เตเด‚, เด‡เดคเต เดชเต‹เดฒเต† เดจเดฟเด™เตเด™เดณเตเดŸเต† เดœเต€เดตเดฟเดคเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฐเดธเด•เดฐเดตเตเด‚ เดชเตเดคเดฟเดฏเดคเตเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดตเตเดฎเดพเดฏ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เตŠเดฃเตเดŸเตเดตเดฐเดพเตป เด‡เดคเดฟเดจเต เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•