關於value_count


value_counts將會對於指定列的數據進行group,然后統計出各個出現的值的數量,並且按照從高到低的順序進行排序
1 train_data = load_titanic_data("train.csv")
2 train_data["Pclass"].value_counts()
輸出:
3 491 
1 216 
2 184 
Name: Pclass, dtype: int64
代表Pclass這個字段共有三種值:1,2,3;出現的次數分別為216,184以及491,上面的列表就是按照出現“值”的數量從高到低排列以及數量進行排列;
原則即使:在對於NaN值處理常規的一種方案就是對於數字型取“中位數”,對於Category的(文字型)填充則取出現頻率最高的;下面就是實現對於文字型填充Null值;
 1 from sklearn.pipeline import Pipeline
 2 from sklearn.preprocessing import Imputer
 3 
 4 num_pipeline = Pipeline([
 5         ("select_numeric", DataFrameSelector(["Age", "SibSp", "Parch", "Fare"])),
 6         ("imputer", Imputer(strategy="median")),
 7     ])
 8 
 9 class MostFrequentImputer(BaseEstimator, TransformerMixin):
10     def fit(self, X, y=None):
11         self.most_frequent_ = pd.Series([X[c].value_counts().index[0] for c in X],
12                                         index=X.columns)
13         return self
14     def transform(self, X, y=None):
15         return X.fillna(self.most_frequent_)
16 
17 from future_encoders import OneHotEncoder
18 cat_pipeline = Pipeline([
19         ("select_cat", DataFrameSelector(["Pclass", "Sex", "Embarked"])),
20         ("imputer", MostFrequentImputer()),
21         ("cat_encoder", OneHotEncoder(sparse=False)),
22     ])
23 
24 cat_pipeline.fit_transform(train_data)

 

 參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM