パンダ一般的に使用される機能

まず、一般的な特徴や機能紹介

インポートパッケージ

一般的に、我々はインポートするには、次の操作を行う必要があり、numpyのとパンダは、一般的に共同使用する必要があります:

PD PANDAS ASインポート
NP ASインポートnumpyのは、
次のように略記します:

DF:パンダDATAFRAMEオブジェクト
S:パンダシリーズオブジェクトの
データのインポート

pd.read_csv(ファイル名):インポートデータからCSVファイル
pd.read_table(ファイル名):定義区切りのテキストファイルからデータをインポート
pd.read_excel(ファイル名):Excelファイルからデータをインポート
pd.read_sql(クエリ、connection_object):からSQLテーブル/データベースのインポートデータ
pd.read_json(json_string):文字列JSONフォーマットからデータをインポート
pd.read_html(URL):URL、HTMLファイルや文字列の解析
pd.read_clipboardを():クリップボードからコンテンツを取得
pd.DataFrameを(辞書):辞書オブジェクトからデータをインポート
データのエクスポート

df.to_csv(ファイル名):CSVファイルへのエクスポートデータ
df.to_excel(ファイル名):Excelファイルへのエクスポートデータ
df.to_sql(TABLE_NAME、connection_object):SQLテーブルへのエクスポートデータ
df.to_json(ファイル名):JSON形式へのデータのエクスポートテキストファイルに
オブジェクトを作成します

pd.DataFrame(np.random.rand(20,5)):5からなる物体20データフレームの行乱数作成
pd.Series(my_listという)を:my_listというイテラブルからシリーズオブジェクトを作成
df.index = PD。 DATE_RANGE(「1900年1月30日」、期間は= df.shape [0]): 日付インデックス増加
指数および組合せにおいて有用な再インデックス、及びその後の要素は、インデックスとして、任意の順序インデックスであってもよく、要素は、変わらずに続きますREINDEX:要素のリメイクは、インデックスのみを必要とするときしたがって、のみに再配置されます。

また、REINDEX、またNaNにラベルされた新しい要素を追加することができます。

 

 

ビュー

df.head(N):正面オブジェクトデータフレームN行
(N)df.tail:Nビュー最後の行データフレームオブジェクト
df.shape():行と列の数が表示
(df.infoを):インデックスデータを参照してください種類やメモリ情報
df.describe():要約統計に数値列を参照してください
s.value_counts(dropna = false)を:Seriesオブジェクト固有の値を参照し、カウント
df.apply(pd.Series.value_counts):ビューあたりのデータフレームオブジェクトカウンタの値のみと
完全な多くの機能で、このような共同ラムダ関数を介するなど、便利なの多くを適用しますように白羽、との特定の部分の要素を含むように。

 

都市[ '幅であり、聖人の名前を持つ'] =(都市[ 'エリア平方マイル']> 50)&都市[ '都市名']を適用します(ラムダ名:name.startswith( 'サン'))。

 
データセレクター

DF [COL]:カラム名、シリーズ列として返し
DF [COL1、COL2] :行のデータフレームを複数形成する返し
s.iloc [0]:位置によって選択データ
s.loc [ 'index_one'] :選択データインデックス押し
df.iloc [0:]:最初の行を返し
、データクリーニングを

df.columns = [ 'A'、 ' B'、 'C']: 名前を変更し、列名
pd.isnull():NULLデータフレームの検査対象と返すブール配列
pd.notnull():オブジェクト検査データフレーム非ヌル値、およびブール配列戻り
df.dropnaを():すべての行がヌル値含有削除
df.fillna(X)を、Xを持つすべてのnull値のデータフレームのオブジェクト交換
シリーズ:s.astype(フロート)浮動するデータの種類を変更する
s.replace(1、「1」) : 「1」の値を持つ代わりに、全ての1に等しい
df.rename(カラム=ラムダX、X + 1): バッチ変更カラム名
df.set_index (「column_one」):インデックス列変更するため
のデータ処理:フィルターを、並べ替え、GROUPBY

DF [COL]> 0.5 DF ]: 選択COLカラムは0.5より大きい値
COL1ソートデフォルトによって昇順に列のデータ、:df.sort_values(COL1)
df.groupby(COL):カラムCOLのリターンにグループ化しますGROUPBYオブジェクト
df.groupby(COL1).agg(np.meanは) : カラムCOL1パケットによってすべての列の平均を返し
df.pivot_table(インデックス= COL1、値= [COL2、COL3]、aggfunc = MAX) プレスを作成しますカラムCOL1基、およびピボットテーブルCOL2及びCOL3の最大値算出
data.apply(np.mean)を各カラムに適用機能np.meanデータフレーム内の
データ結合

df1.append(DF2):DF2テールDF1のに行を追加
df.concat([DF1、DF2] :軸= 1) DF1尾DF2する列を追加
= ON df1.join(DF2をCOL1、どのように=「内部」) :列のSQL実行形式はDF1とDF2は、カラム参加
統計を

df.describe():要約カラム統計のデータ値表示
df.meanを():すべての列の平均値を返し
)(df.corrを:列と列の間の相関係数を返す
(df.count):各列のリターンを非ヌル値の数
、各列の最大値を返し:df.max()
df.minを():各列の最小値を返す
)df.medianを(各列のビット数を返す
)(df.std:戻ります各列の標準偏差
パンダは、データタイプをサポート

int型int型
フロートフロート
ブールブール
オブジェクトの文字列型の
カテゴリー種類
のdatetimeタイムタイプ
を追加しました:

df.astypes:データフォーマット変換
df.value_counts:同じ値の数カウント
df.histを():ビデオヒストグラム
df.get_dummiesを:ワンホットエンコーディングは、翻訳は、マトリックス型のフォーマット属性に属性。例えば:[100]として符号化されたRGB三色、赤
 

参考記事:

パンダ公式サイト

パンダ公式文書

パンダシートチート - データ・サイエンスのためのPython

パンダへ10分

第二に、住宅価格は、ケースを予測しました

価格与えられた予測するために、与えられた訓練のcsvファイル、csvファイルのテストによります。


 
NPのようなインポートnumpyの
PDとしてインポートパンダ
Cython.Shadowインポートインラインから
 
PLT用としてインポートmatplotlib.pyplot
#matplotlibインライン
 
################### 1つのoridinalデータ##### #############
train_df = pd.read_csv( '入力/ train.csv'、index_col = 0)#数据导入
test_df = pd.read_csv( '入力/のtest.CSV'、index_col = 0)
 
プリント( "train_dfのタイプ:" + STR(タイプ(train_df)))
#print(train_df.columns)
プリント( "train_dfの形状:" + STR(train_df.shape))
プリント( "test_dfの形状:" + STR(test_df.shape))
 
train_df.head()#数据查看
#print(train_df.head())
 
################### 2平滑ラベル### ###################
価格= pd.DataFrame({ "価格":train_df [ "SalePrice"]、 "ログ(代金+ 1) ":np.log1p(train_df [" SalePrice」])})
印刷( "物価の形状:" + STR(prices.shape))#数据创建
prices.hist()#直方图
#のplt.plot(アルファ、test_scores)
#1 plt.title( "アルファCVエラーVS")
PLT。ショー()
 
y_train = np.log1p(train_df.pop( 'SalePrice'))
プリント( "y_trainの形状:" + STR(y_train.shape))
 
################ ### 3テイク電車やテストデータと共に##############
all_df = pd.concat((train_df、test_df)、軸= 0)#1数据合并
プリント(「all_dfの形状: "+ STR(all_df.shape))
 
文字列へ################### 4メイクカテゴリデータ################ ####
プリント(all_df [ 'MSSubClass']。dtypes)
[ 'MSSubClass'] = all_df [ 'MSSubClass']。astype(STR)#数据格式转换all_df
all_df [ 'MSSubClass']。統計の数としてvalue_counts()#同じ値
プリント(all_df [ 'MSSubClass'] 。value_counts())
 
ヌルを埋める。5 ########################### ##################
all_dummy_df = pd.get_dummies(all_df)#ワンホット符号化、カラーRGB、R [0 0 1]として符号化される
ヌル特性を見つけ、印刷(all_dummy_df.head())#次ラインデータクレンジング、及び空の数に応じてソート属性
印刷(all_dummy_df.isnull()。SUM()。sort_values(昇順=偽).head())
 
mean_cols all_dummy_df.mean =()#統計を、平均的な
印刷(mean_cols.head(10))
 
all_dummy_df = all_dummy_df .fillnaヌルの代わりに、値(mean_cols)#データクリーニング、()
印刷(all_dummy_df.isnull()。SUM()。SUM())
 
###############。6 ######################## COLS数値スムーズ
numeric_colsの=のall_df.columns [all_df.dtypes!= 'オブジェクト']#はない性質、選択したオブジェクト、すなわち、値データ
プリント(numeric_cols)
 
numeric_col_means = all_dummy_df.loc [:、numeric_cols] .mean()#ブラケットのインデックスデータに応じて選択され、そして平均
numeric_col_std = all_dummy_df.loc [:, numeric_cols] .std()
all_dummy_df.loc [:, numeric_cols] =(all_dummy_df.loc [:, numeric_cols] - numeric_col_means)/ numeric_col_std
 
############# ## 7トレインモデル#######################
dummy_train_df = all_dummy_df.loc [train_df.index]
dummy_test_df = all_dummy_df.loc [test_df.index]
プリント( "dummy_train_dfの形状:" + STR(dummy_train_df))
プリント( "dummy_test_dfの形状:" + STR(dummy_test_df))
 
sklearn.linear_modelインポートリッジから
sklearn.model_selectionインポートからcross_val_score
 
X_train = dummy_train_df.values
X_test = dummy_test_df.values
 
アルファ= np.logspace(-3、2、50)
test_scores = []
アルファアルファのための:
CLF =リッジ(アルファ)
test_score = np.sqrt(-cross_val_score(CLF、X_train、y_train、CV = 10、スコア= 'neg_mean_squared_error'))
test_scores.append(np.mean(test_score))
plt.plot(アルファ、test_scores)
plt.title(」 CVエラー")対アルファ
plt.show()
 
sklearn.ensembleインポートRandomForestRegressorから
max_features = [0.1、0.3、0.5、0.7、0.9、0.99]
test_scores = []
max_featuresでmax_feat用:
CLF = RandomForestRegressor (n_estimators = 200、max_features = max_feat)
test_score = np.sqrt(-cross_val_score(CLF、X_train、y_train、CV = 5、スコア= 'neg_mean_squared_error'))
test_scores.append(np.mean(test_score))
 
plt.plot( max_features、test_scores)
plt.title( "マックスはCVエラー対機能")
plt.show()
 
######################### 8スタッキング#####################
畝=リッジ(アルファ= 15)
RF = RandomForestRegressor(n_estimators = 200、max_features = 0.3)
ridge.fit(X_train、y_train)
rf.fit(X_train、y_train)
 
y_ridge = np.expm1(ridge.predict(X_test))
y_rf = np.expm1(rf.predict(X_test))
 
y_final =(y_ridge + y_rf)/ 2
 
###################### 9提出###### ######################
submission_df = pd.DataFrame(データ= { 'ID':test_df.index、 'SalePrice':y_final})
プリント(submission_df。頭())

おすすめ

転載: www.cnblogs.com/aibabel/p/11011614.html