パンダは10のヒントの効率を向上させます

1、read_csv

 データの量は、あなたは多くを読みたい場合、あなたはそれを、このパラメータを使用しようとすることができます:チャンク= 5。実際にテーブル全体をロードする前に、テーブルのごく一部が読み出されます。

2、select_dtypes

前処理データのためのPythonを使用している場合、このコマンドは、時間の節約に役立ちます。テーブルを読み出した後、各列のデフォルトのデータ・タイプは、BOOL、Int64型、のfloat64、オブジェクト、カテゴリ、timedelta64又はdatetime64であってもよいです。このコマンドを使用するすべてのデータ型を取得することができます。

df.dtypes.value_counts()

次に、以下の操作を実行し、選択サブデータセットは、所望の特性を。

df.select_dtypes([ 'のfloat64'、 'Int64の'] =含みます)

3、コピー

これは非常に重要なコマンドです。次のコマンドを実行している場合:

PDとしてインポートパンダ
DF1 = pd.DataFrame({ '':[0,0,0]、 'B':[1,1,1]})
DF2 = DF1
DF2 [ ''] = DF2 [A ' 「] + 1
df1.head()

あなたは変わっDF1います。これは、DF2 = DF1をコピーDF1とDF2に割り当てられていないためであるが、DF1を指し示すポインタを提供します。DF2そのため変更はDF1の変化をもたらすだろう。この問題を解決するには、次の2つのメソッドを使用することができます。

DF2 = df1.copy()、または

コピーインポートdeepcopyから
DF2 = deepcopy(DF1)

4、マップ

これは非常にクールにデータを変換する簡単な方法です。まず、「キーは」古い価値ある辞書、「値」の定義は、新しい値です。

level_map = {1 'ハイ'、2 '中'、3 'ロー'}
DF [ 'c_level'] = DF [ 'C']マップ(level_map)。

5、適用されます

我々はいくつかの他の値を入力する欄で新しい列を作成する場合は、適用機能は非常に有用であろう。

DEF(x、y)をルール:
    > 10×== 'ハイ'の場合とY:
         1リターン
    他:
         戻り0
DF = pd.DataFrame({C1 '':[ 'ハイ'、 'ハイ'、 'ロー'、 '低']、 'C2':[0、23、17、4]})
DF [ '新しい'] = df.apply(ラムダX:ルール(X [ 'C1']、X [ 'C2']) 、軸= 1)
df.head()

上記のコードでは、我々は、2つの入力変数の関数(x、y)を定義し、関数「C1」欄及び「C2」の列を適用適用します。

しかし、問題は、時々遅すぎる方法を適用しています。たとえば、あなたは最大2「C1」と「C2」を計算したい、あなたはこれを行うことができます。

DF [ '最大'] = df.apply(ラムダX:MAX(X [ 'C1']、X [ 'C2'])、軸= 1)

しかし、それは、次のコマンドよりもはるかに遅いです。

DF [ '最大'] = DF [[ 'C1'、C2 '']]。MAX(軸= 1)

注:組み込み関数と同じプログラムを完了するために他を使用することができた場合は、適用を使用しないようにしよう、組み込み関数は、通常は高速ですので。例えば、列「C」にラウンド(DF [「C」]、0)を使用して、整数に四捨五入され、代わりに関数を適用します。

6、値カウント

これは、分散統計の値をチェックするためのコマンドです。あなたは「C」どのように多くの異なる値、およびそこ列の出現頻度の各値を見たい場合は、この操作を行うことができます。

DF [ 'C']。value_counts() 

我々の下にまとめたものは、いくつかの有用なヒントを与えました:

A.の正規=真:代わりにカウントの周波数についての文章をチェックします。

B.のdropnaは= FALSE:統計に欠損値が含まれていてもよいです。

C.ソート=偽:統計は値によってソートされたが、回数順にソートされません。

D. DF [C」] .value_counts()reset_index():.統計テーブルデータがパンダ再処理に変換されます。

7、欠損値の統計情報

モデルを構築するときは、欠損値またはライン欠損値を除外したい場合は所属、(.isnullを使用することができる)と.SUM()プロセスへ。

パラジウムとしてインポートパンダ
NPとしてインポートnumpyの
[1,2,3]、C1 '':[0,0、np.nan]、 'C2':[np.nan、DF = pd.DataFrame({ 'ID' 1,1]})
DF = DF [ 'ID'、 'C1'、 'C2']]
DF [ 'num_nulls'] = DF [[ 'C1'、C2 '']]。ISNULL()。和(軸= 1)
df.head()

図8に示すように、選択された行は、特定のIDを有します

SQLでは、私たちは、SELECT * FROMを使用することができます...( 'A001'、 'C​​022'、...)でのIDは、特定のIDを持つレコードを取得するためにWHERE。パンダでは、行うことができます。

df_filter = DF [ 'ID']。ISIN([ 'A001'、 'C022'、...])
DF [df_filter]

9、パケット:割合として

数値列の場合は、1.5%ような値の5%としての列の値、グループに以前のグループに望ましい - 2.20パーセントの値の値の20%-50%3つのグループに分割されたグループに、値の残りの50%は4つのグループに分けました。そこには多くの方法がありますが、ここで新しい方法を提供もちろんパンダは、その速度はすぐに(何の使用がないので、関数を適用)します。

NPのようなインポートnumpyの
[50、80、95]におけるiに対するnp.percentile(DF [ 'C']、I)] cut_points =
DF [ 'グループ'] = 1
の範囲内のiについて(3):
    DF [」グループ'] = DF ['グループ'] +(DF [' C '] <cut_points [I])
#または<= cut_points [I]

10、to_csv

これは、誰もが使用する一般的なコマンドです。しかし、私は2つの別々のヒントを指摘する、最初のものは次のとおりです。

プリント(DF [5] .to_csv())

このコマンドは正確にファイルに書き込まれるデータの最初の5行をプリントアウトすることができます。

別の技術はfloat_format = '%。0F' です。

整数値と空孔の混合一緒に扱う場合のために。同時に、欠損値と整数値場合、データ型はまだフロートint型の代わりに書かれています。= float_formatを追加することによって、データテーブルをエクスポートするときに、「%。0F」を全て丸いオフフロート。あなたは、出力のすべての列が整数である場合は、この技術はまた、あなたが迷惑な「0.0' フォーマットを取り除くことができます。

 

おすすめ

転載: www.cnblogs.com/wu-wu/p/12444462.html