1.まずパンダライブラリ、通常使用するライブラリnumpyの、別のパイロットを導入しました:
##### NP ASインポートnumpyの##### インポートPANDAS PD AS #### 2. XLSXまたはインポートCSVファイル:
データ= pd.DataFrame(pd.read_csv( 'name.csv'、ヘッダ= 1))
データ= pd.DataFrame(pd.read_exce( 'name.xlsx'))
3.パンダとのデータテーブルを作成します。
DF = pd.DataFrame({ "ID":1001,1002,1003,1004,1005,1006]、
"日付":pd.date_range( '20130102'、期間= 6)、
"都市": '北京' 'SH'、 '広州'、 '深セン'、 '上海' '北京']、
"年齢":[23,44,54,32,34,32]、
"カテゴリ":[' 100-A' 、 '100-B'、 '110-A'、 '110-C'、 '210-A'、 '130-F']、
"価格":[1200 np.nan、2133,5433、np.nan 、4432]}、
列= [ 'ID'、 '日付'、 '都市'、 'カテゴリ'、 '年齢'、 '価格'])
-
1
-
2
-
3
-
4
-
5
-
6
-
7
II。データシートビュー
1.寸法表示:
data.shape
表2.基本データ情報(寸法。列名データ・フォーマット・フットプリントなど)
data.info()
図3に示すように、データフォーマットの各カラム:
data.dtypes
4、列フォーマット
データ[ 'B']。DTYPE
5、NULL値:
data.isnull()
図6に示すように、ヌル値列を参照してください。
data.isnull()
7、列の一意の値を参照してください。
(データ[ 'B']ユニーク)
図8は、データテーブルの値を表示します。
data.values
9、列名を参照してください。
data.columns
10は、データの10行の後に、データの最初の10行を参照してください。
デフォルトの前のデータのdata.head()#は10行10列の後data.tail()#デフォルト
III。データシートのクリーニング
図1に示すように、数字のゼロはNULL値を埋め。
data.fillna(値= 0)
2、NA満たされた王子列の平均値を使用して:
データ[ '王子']。fillna(DF [ '王子']。平均())
3、明確な文字スペースの都市フィールド:
データ[ '都市'] =のDF [ '都市']。マップ(str.strip)
図4に示すように、大文字と小文字の変換:
データ[ '都市'] =のDF [ '都市']。str.lower()
5、データ形式を変更します。
データ[ '価格']。astype( 'INT')
6、列名を変更します。
data.rename(列= { 'カテゴリー': 'カテゴリサイズ'})
7、後に重複を削除します。
データ[ '都市']。drop_duplicates()
8、削除する重複した値が表示されます。
データ[ '都市']。drop_duplicates(キープ= '最後')
9、データ交換:
データ[ '都市']。置き換える( 'SH'、 '上海')
第四に、データの前処理
DF1 = pd.DataFrame({ "ID":1001,1002,1003,1004,1005,1006,1007,1008]、
"性別": '男性'、 '女性'、 '男性'、 '女性'、 '男性' '女性'、 '男性'、 '女性']、
"有料":[ 'Y'、 'N'、 'Y'、 'Y'、 'N'、 'Y'、 'N'、 'Y'、]、
"M-点":[10,12,20,40,40,40,30,20]})
-
1
-
2
-
3
-
4
1、データテーブル合併
1.1マージ
df_inner = pd.merge(DF、DF1、どのよう= 'インナー')#マッチ組み合わせ交差点df_left = pd.merge(= '左' 方法DF、DF1)df_right = pd.merge(DF、DF1、どのよう= '右 ')df_outer = pd.merge(DF、DF1、どのように=' 外「)#組合
-
1
-
2
-
3
-
4
1.2アペンド
結果= df1.append(DF2)-
1
1.3参加
(= 'キー' を右、)結果= left.join-
1
1.4連結
pd.concat(OBJS、軸= 0、参加= '外'、join_axes =なし、ignore_index = Falseを、
キー=なし、レベル=なし、名=なし、verify_integrity = Falseを、
コピー=真)-
1
-
2
-
3
シーケンスまたはシリーズ、または集積マッピングパネルオブジェクトobjs︰。値が選択される場合には、渡されない限り、辞書は、ソート・キーを使用して、キーパラメータとして、送信される場合(以下を参照)。彼らはこのケースではありませんしない限り、異議のいずれかの不在は黙って破棄されますValueErrorを送出します。軸:{0,1、...}、デフォルト値は0です。シャフトに沿って接続します。参加:{ '内側'、 '外側'}、デフォルトの'外側に'。どのように他の軸(ES)上のインデックスに対処します。連合内や交差点外。ブール値ignore_index︰、デフォルトはfalse。Trueの場合、インデックスシリーズ軸の値を使用しないでください。軸0、...、N-1を標識してしまいます。あなたは、インデックス情報タンデムアクスルタンデム意味のあるオブジェクトがない場合に便利です。カップリングの他の軸のインデックス値がまだ尊重されることに注意してください。オブジェクトのリストjoin_axes︰インデックス。特定の指標、n-1個の他の軸の代わりに、内部/外部設定ロジックを実行します。keys︰順序、デフォルトはnoneです。最も外側のレベルのような鍵を用いて層状インデックスの構造。複数のレベルを採用した場合タプル必要があります。levels︰シーケンスリストは、デフォルトはnoです。特定のレベル(固有値)は、複数を構築するために使用されます。そうでなければ、彼らはキーを推測します。リストnames︰、デフォルトはnoneです。で得られた積層インデックスのレベルに名前を付けます。ブール値verify_integrity︰、デフォルトはfalse。重複を含む新規タンデムアクスルことを確認してください。これは、実際のデータは非常に高価であるに対して直列に接続してもよいです。コピー︰ブール値、デフォルトはTrue。Falseの場合は、データを不必要に複製されません。
例:1.frames = [DF1、DF2、DF3] 2.result = pd.concat(フレーム)
2、列セットインデックス
df_inner.set_index( 'ID')
-
図3は、特定の列の値に従ってソート。
df_inner.sort_values(= [ '年齢']によります)
インデックス列の並べ替えに応じて4:
df_inner.sort_index()
カラム王子> 3000の値は、グループ列が高い場合を示し5は、そうでなければ低表示されます。
df_inner [ 'グループ'] = np.where(df_inner [ '価格']> 3000、 '高'、 '低')
図6に示すように、複合データマーカの複数のグループ化されている条件
df_inner.loc [(df_inner [ '都市'] == '北京')&(df_inner [ '価格']> = 4000)、 '記号'] = 1
図7に示すように、順次、脱凝集カテゴリフィールドの値、及びデータテーブルを作成し、インデックス値df_innerインデックス列、カテゴリおよびサイズの列名
pd.DataFrame((x.split( - df_innerでxについて)[ 'カテゴリー'])、インデックス= df_inner.index、列= [ 'カテゴリー'、 'サイズ'] ''))
図8に示すように、分割されたデータシートとデータシートの完了後に元のdf_innerにマッチします
df_inner = pd.merge(df_inner、スプリット、right_index =真、left_index =真)
V.データ抽出
使用される三つの主な機能:LOC、ILOCおよびIX、タグ値によってLOC機能抽出、位置によって抽出ILOCは、IXを同時にタグと位置によって抽出することができます。
図1は、指標値に応じて単一の行を抽出します
df_inner.loc [3]
列領域抽出の指標値に応じて2、
df_inner.iloc [0:5]
3、インデックスをリセット
df_inner.reset_index()
4、インデックスの日付を設定
df_inner = df_inner.set_index( '日付')
5、第四の前にすべてのデータを抽出
df_inner [ '2013年1月4日']
図6に示すように、ロケーションエリアデータ抽出ILOCを用いて
df_inner.iloc [3 ,: 2]結腸インデックスのラベル名は#番号の前後にもはやであるが、位置データは0、最初の3行、最初の2列から開始し、配置されています。
図7に示すように、別個のデータILOCにより上昇位置を適合させます
df_inner.iloc [0,2,5]、[4,5]#0,2,5行抽出、カラム4,5
図8に示すように、インデックス内の混合抽出物IXタグと位置データの使用
df_inner.ix:データの[「2013年1月3日」,: 4]#2013年1月3日前号、第4列
図9は、cityカラムの値が北京であるかどうかを決定します
df_inner [ '都市']。ISIN([ '北京'])
図10は、か否かが判定されるから抽出された条件を満たしている北京、上海を含む都市カラム、次いでデータ
df_inner.loc [df_inner [ '都市']。ISIN([ '北京'、 '上海'])]
11、最初の3つの文字を抽出し、生成テーブルデータ
pd.DataFrame(category.strの[3])
VI。スクリーニングデータ
使用、または、3つの非嵌合状態は、データをフィルタリングするために等しく、そして計数及び加算、より小さい、より大きい。
1、「および」スクリーニングの使用
df_inner.loc [(df_inner [ '年齢']> 25)&(df_inner [ '都市'] == '北京')、[ 'ID'、 '都市'、 '年齢'、 'カテゴリ'、 '性別'] ]
2、「または」上映
df_inner.loc [(df_inner [ '年齢']> 25)| (df_inner [ '都市'] == '北京')、[ 'ID'、 '都市'、 '年齢'、 'カテゴリ'、 '性別']]。ソート([ '年齢'])
3、「非」状態フィルタの使用
df_inner.loc [(df_inner [ '都市']!= '北京')、[ 'ID'、 '都市'、 '年齢'、 'カテゴリ'、 '性別']]。ソート([ 'ID'])
図4に示すように、フィルタリングされたデータは、都市列でカウントされ
df_inner.loc [(df_inner [ '都市']!= '北京')、[ 'ID'、 '都市'、 '年齢'、 'カテゴリ'、 '性別']]。ソート([ 'ID'])。 city.count()
5、フィルタにクエリ機能を使用して
df_inner.query( '都市== [ 『北京』、 『上海』]')
6、スクリーニングの結果を王子によって加算された後
df_inner.query( '都市== [ 『北京』、 『上海』]')。price.sum()
VII。データの要約
主な機能は、GROUPBYとpivote_tableです
すべての列の要約の1、カウント
df_inner.groupby( '都市')。カウント()
都市IDフィールドカウントに応じて2、
df_inner.groupby( '都市')[ 'ID']。カウント()
3、二つのフィールドの要約のカウント
df_inner.groupby([ '都市'、 'サイズ'])[ 'ID']。カウント()
図4は、市のフィールドにまとめ、および合計を計算し、王子を意味します
df_inner.groupby( '都市')[ '価格']。AGG([LEN、np.sum、np.mean])
VIII。統計
データサンプリング、標準偏差、共分散および相関係数を計算します
図1に示すように、単純なデータ・サンプル
df_inner.sample(N = 3)
図2に示すように、手動で試料重量を設定します
重み= [0、0、0、0、0.5、0.5] df_inner.sample(N = 2、重み=重み)
3、交換せずにサンプリングした後、
df_inner.sample(N = 6、= Falseの交換)
4、バックサンプリング後
df_inner.sample(N = 6、=真を置き換えます)
5、データテーブルの記述統計
df_inner.describe()。ラウンド(2).Tは小数点表示機能を#roundが設けられ、Tは転置を表します。
図6に示すように、標準偏差計算カラム
df_inner [ '価格']。STD()
図7に示すように、2つのフィールド間の共分散の計算
df_inner [ '価格']。COV(df_inner [ 'Mポイント'])
図8に示すように、すべてのフィールドの間のデータテーブル共分散
df_inner.cov()
図9に示すように、二つのフィールドの相関分析
df_inner [ '価格']。CORR(df_inner [ 'Mポイント'])-1と1の間#相関係数、1に近い正の相関は、負の相関は、相関のない0 -1に近いです
10、相関データテーブル分析
df_inner.corr()
IX。データ出力
データ分析は、フォーマットと出力フォーマットのCSVをXLSXすることができます
1、Excelを書きます
df_inner.to_excel( 'excel_to_python.xlsx'、シート名= 'bluewhale_cc')
2、CSVに書き込まれます
df_inner.to_csv( 'excel_to_python.csv')