1頭のパンダインデックス
:のような、直接インデックス値によってアクセスすることができるシリーズ、用
S =のpd.Series(np.array([1,2,3,4])、インデックス= [ 'A'、 'B'、 'A'、 'B'])
S [ 'A']
データフレームの場合は、次のような、LOCを使用する必要があります。
S = pd.DataFrame(np.array([1,2]、[3,4]、[5,6]、インデックス= [ 'A'、 'B'、 'A'])
s.loc [ 'B']
2、繰り返しインデックス
決意:彼らは重複したインデックスを含むかどうかを決定するために、is_unique機能が使用されてもよい、など。
s.is_unique
重複したインデックスを取得することは、ユニークな機能は、次のような、使用することができます。
S1 = s.unique()
インデックス処理は、以下のような、使用されてもよいGROUPBYにより、繰り返されます。
S2 = s.groupby(s.index).SUM()
図3に示すように、マルチレベルインデックス
3.1シリーズ
マルチ・レベル・インデックスは、マルチインデックス機能を使用することができる作る、など。
A1 = [ 'A'、 'B'、 ''、 'C'、 'B'、 'B']、[1,2,2,3,1,2]
A2 =リスト(ZIP(* A1))
インデックス= pd.MultiIndex.from_tuples(A2、名前= 'LEVEL1'、 'レベル2'])
3.2データフレーム
以下のような、わずかに異なるとのシリーズ:
DF = pd.DataFrame(np.random.randint(1,10、(6,3))、インデックス= [ 'A'、 'B'、 ''、 'C'、 'B'、 'B' ]、[1,2,2,3,1,2]、列= [ '1'、 '2'、 '1']、[、 '赤' '青'、 '赤']])
3.3マルチレベルのインデックス間の交流
df.swaplevel(0)
3.4ソート指数によると、
df.sortlevel(1)
3.5は、指数を算出し、
df.sum(レベル= 0)
3.6列のインデックスを変換します
df.set_index(1列名、列名、2 ...)
また、()などdf.reset_indexとして、インデックスに戻ることができます
4グループ化計算
基本的なプロセス:スプリット - アプリケーション - マージ
リストをグループ化することにより、4.1
例:df.groupby(1つのカラム名、カラム名2、...).SUM()
辞書をグループ化して4.2
DF = pd.DataFrame(np.random.randint(1,10、(6,4))、列= [ 'A'、 'B'、 'C'、 'D'])
マッピング= { 'A':赤、 'B':青、 'C':赤、 'D':青}
DF1 = df.groupby(マッピング、軸= 1)
機能をグループ化することにより、4.3
インデックスに基づいて、パケットの関数の戻り値
デフ_group(IDX):
リターンIDX
df.groupby(_group)
以上4.4レベルインデックスグルーピング
次のようなインデックス名にグループ化する、異なるレベルの
df.groupby(レベル=索引名、軸= 1)
5集計演算
組み込み関数の重合5.1
合計、平均値、最小値、最大値、describle
5.2カスタム集計関数
デフ_group(S):
リターンs.max() - s.min()
df1.agg(_group)
注意:DF1は、グループ化の結果であります
5.3法を適用
デフトップ(G、N = 2、列= 'DATA1'):
(偽=カラム、ascengding =による)戻りg.sort_value [:, N]
DF2 = df.groupby(列名).apply(上)
6データのインポートとエクスポート
6.1データのインポート
6.1.1インポート方法
pd.read_csv(ファイルパス)
pd.read_table(ファイルパス、9月= '')
その9月のいくつかよりも柔軟pd.read_table pd.read_csvは、正規表現をサポートしています。
6.1.2インポート設定
ファイルを読み込むときなど、列ラベル、列の一部が、行ラベルとして指定することができるが、存在する場合、あなたが設定できます。
DF = pd.read_csv(パス、ヘッダ=なし、index_col = [1カラム名、カラム名2、...])
6.1.3欠損値
:失われたデータ、pd.read_csv自動的に空席の場合、欠損値などのNAは、またなど、カスタマイズすることができます
DF = pd.read_csv(パス、na_valuesは= [ 'NA'、 'NULL'、 'FOO'])
さえ方法は、個別に各列に設けられた辞書を使用することができ
6.1.4読み出したデータブロック
CHUNKSIZEブロックが計算されるようなキー値の数などのパラメータによってデータを読み出します。
DF = pd.read_csv(パス、チャンク= 1000)
結果= pd.Series([])
DFでのチャンクのための:
結果= result.add(チャンク[キー] .value_counts()、fill_value = 0)
ディスクへのデータのエクスポート6.2
pd.to_csv(パス)
pd.to_csv(パス、インデックス=偽):これは、のような、インデックスを保持することなく、提供することができます
7時系列
7.1つの共通ライブラリ
日時インポート日時から
日時輸入はtimedeltaから
7.2時間の定義
T1 =日時(2019,9,23)
7.3時間の変換
時間変更の文字列:
T1 =日時(2019,7,23)
t1.strftime( '%Y /%M /%d個の%のH:%のM:%のS')
文字列の変更時刻:
datetime.strptime( '2019年7月12日9時20分'、 '%Y-%M-%D%H:%のM')
7.4時系列を生成します
DATE_RANGEを使用します。
pd.date_range( '20190620'、 '20190628')
pd.date_range( '20190620'、期間= 10、FREQ = 'M')
期間を使用します。
pd.period_range( '2016から10'、期間= 10、FREQ = 'M')
期間の7.5タイムスタンプ変換
タイムスタンプは、期間を変換します:
如:S = pd.Series(np.random.randint(5)、インデックス= pd.date_range( '2016年4月1日'、期間は= 5、FREQ = 'D'))
s.to_periodを()、また、パラメータを追加することができ、s.to_period(FREQ = 'M'):コール
同様に、期間S1のためのデータは、s1.to_timestamp()は、タイムスタンプに変換することができます。
注意:一つは、ピリオド、1時間です!
7.6時間リサンプリング
7.6.1ダウンサンプリング:高頻度に低周波
ts.resample(サンプリング期間、実施形態では、時間値)、例えば:
ts.resample( '5分'、どのように= '合計'、ラベル= '右')
また、GROUPBY機能を使用することができます。
ts.groupby(ラムダX:x.month).SUM()
ts.groupby(ts.index.to_period( 'M'))。合計()
7.6.2アップサンプリング:高いものへ
タイムスタンプ:ts.resample( 'D'、fill_method = 'ffill')
期間:ts.resamle( 'A-DEC'、どのように= '合計')
7.7に対処するための時間に時間を解析したファイルを
DF = pd.read_csv(路径、parse_dates =真)
8データの可視化
ビデオ折れ線グラフ:ts.plot(figsize =タプル、スタイル=色と線の種類、タイトル=図名)
ビデオ散布:ts.plot.scatter(X = ''、Y = '')
ヒストグラムを描く:ts.plot.bar(= Trueの積み重ね)
ヒストグラムを描く:ts.plot.hist(ビン= 20)
図の自身:ts.plot.pie()