numpyの、パンダは、2を学びます

直列パンダとarraryで#numpy、データフレーム差は
、配列、無インデックス、列名を生成#arrary;シリーズインデックスのみの一次元アレイを作成することができ、データフレームインデックス、列名
NP ASインポートnumpyの
PDとしてインポートパンダ

#numpy基本使用
プリント(np.array([1,2,3、 " A"]))# を作成し、一次元アレイ印刷
#1 np.arrayのA =([2、3、 "A"])
位a.shapeアレイプリントを印刷された線の数(a.shape、a.size)#、列数、アレイ内の記録素子のa.size数
プリント(np.array([1,2,3] 、[4、 5,6]、[7,8,9]]))#作成の二次元アレイ印刷
プリント(xについてnp.array([Xの範囲内(1,10)]、DTYPE = np.int32))#dtype 要素タイプを設定するために使用される
プリントの数のランク(np.array([XのX範囲内(1,10)])。整形((3,3)))#reshape マトリクスに設けられ
プリント(np.arange(10 、20,2))ステップで#10の配列の20に作成された
印刷物を(np.arange(12).reshape( (3,4)))#は3列に)12を除く(0-12から作成4件の行列
#1 np.arangeのB =(10,20,2)
#Print(B <15)#戻り[真TRUE TRUE FALSE FALSE]
'' '
np.linspace(1,10,20))が1位となり20 -10の平均数、およびシーケンス生成
np.linspace(1,10,8).reshape((2,4)))
np.zeros((3,4-))を#0は、3行4列を生成しますマトリックス
np.ones((3,4)、DTYPE = NP。INT32)#は、行列の四つの要素の三行は1である生成します
np.empty((3,4))
'' '
の行列乗算#numpy
A1 = np.arangeを(12で).reshape((3,4))
プリント(A1 * 2)#A1は、各要素が乗算されます2
プリント(a1が** 2)各要素A1#二乗
B1を= np.arange(4)
A1乃至#B1を有するプリント(A1の* B1は)各ラインが乗算され
#実行列乗算
A2 = NP。 aRange(4).reshape(2,2&)
B2 = np.array([1,0]、[0,1])
np.dot(A2、B2)#2行列乗算
a2.dot(B2 )#2行列乗算の別の表現
' ''
np.sum(A2)
np.max(A2)
np.sum(A2、軸= 1)#行の和= 0の場合、用プレスシリーズの合計、合計、最小、同じ使用を意味します

np.argmin(A2)#は、インデックスの最小値を返し、0
np.argmax(A2)#最大値,. 3のインデックスを返し
、各行列の2つの要素間np.diff((A2))#差(行)
」 ''
A = np.arange(14,2、-1).reshape((3,4))
プリント(A)
プリント(np.sort(A))昇順で行ごとに要素の#行
プリント(NP。転置(A))#行列を転置
印刷((AT).DOT(a)参照)
を印刷(np.clip(5,9))は、すべての行列#5の数より少ない5に全9よりも大きいです番号が変更された9
の[2]#全ての第2行目
[2] [1]
[2,1]
、[2:] 2行目の#番号は、すべて
[:1]の#数のすべての
最初の行の#1-2の要素:[2 1,1]
A.flatten()平滑シーケンスとして#行列
A.flat内のアイテムのは:#1 A.flatは反復されある
プリント(商品)
#組み合わせ
A3 = np.array([1,1,2])
B3 = np.array([2,2,3])
プリント(np.vstack((A3、B3)))垂直位マトリックスの両方兼ね備え
プリント(np.hstack((A3、B3 )))# 左の組み合わせは、
プリント(a3.T.shape)#戻り(3)、a3.T変換は列の数に対して横方向に達成することができない列の列の数である
プリント(A3 [np.newaxis ,:] 。形)#の戻り値(1,3)
= A3 A3 [:、np.newaxis] np.array#=([1,1,2]):、np.newaxis]
B3のB3 = [:、np.newaxis] np.array#=([2,2&、 3]):、np.newaxis]
プリント(np.hstack((A3、B3)))
プリント(np.concatenate((A3、B3、A3、B3)=軸1))軸場合、#について合わせ= 0垂直に合わせた
#分割
A4 = np.arange(12)と.reshape((3,4))
プリント(np.split(a4,2、軸= 1))#split(データは、いくつかの部分に分割され、どの方向で割った)、カラムは、によって2つの部分に分割される
プリント(np.split(a4,3、軸= 0))#のラインはによって3つの分割されている
プリント(np.array_split(a4,3、軸= 1))# 不等分割
プリント(np.vsplit(a4,3))#上下分割
スプリット約プリント(np.hsplit(a4,2))#

#pandas基本用法
M = pd.Series([1,2,3,4])
indexs = pd.date_range( '20180101'、期間= 6)
プリント(indexs)
プリント(pd.DataFrame(np.random.randn( 6,4)、インデックス= indexs、列= [ 'A'、 'B'、 'C'、 'D']))
プリント(pd.DataFrame(np.arange(12).reshape((3,4) )))
プリント(pd.DataFrame({ "2018001": "張さん"、 "2018002": "LIのSI"、 "2018003":リスト([ "wanger"、 "sangsi"、 "wangwu"])}) )#用字典来创建DATAFRAME、其中"2018001"等为列名
M1 = pd.DataFrame({ "2018001": "張さん"、 "2018002": "LIのSI"、 "2018003":リスト([ "wanger 」、 "sangsi"、 "wangwu"])})
#m1.dtypes m1.columns m1.describe()
m1.sort_index(軸= 1、昇順= 1、列の並べ替えを表す=偽)#軸、軸= 0は、ソートのためのインデックスを示し、上昇= Falseの表現逆、正シーケンスがTrue表す場合
ソートする。#2018001)=「2018001」により(この列をm1.sort_valuesを
pd.DataFrame = DF(np.arange(24).reshape((6,4))、インデックス= indexs、列= [ 'A'、 'B'、 'C'、 'D'])
プリント(DF [ 2出力'A']、df.a)#と同様、各出力は、列の値で
印刷(DF [0:3] 、DF [ '20180102' '20180104'])#0-3index データ、二つの同一の出力
#フィルタープレス行ラベル
印字(df.loc [ '20180102'] )# 20180102行出力
プリント(df.locの[:[ ' A'、 'B'])#は、 2つのB、出力カラム
プリント(df.loc [ '20180102'、 [ 'A'、 'B'])#1 '20180102'線A、Bの2つのデータの出力
#行番号スクリーニングにより範囲
印刷(df.iloc [3、 1])#3行目、第一列のデータ出力
5,1:プリント(df.iloc [3 3])#は5行目に対応するデータの3番目の列に最初の列の3番目の行を出力する
プリント( df.iloc [1,3,5]、1: 3])#は最初、3つ、5つの行を出力し、第3列の最初の列は、データに対応
#タグ、混合スクリーニングのランク数ランク
プリント(df.ixを[ :3、[ 'A'、 'C']])#の最初の三つのライン出力は、C列は、データに対応する
データフィルタの#拡張領域は含む
プリント(DF [df.aを>8])#フィルタ値の列8内のすべての列よりも大きい
[df.a> 4] df.a(印刷 )#1 列の値をスクリーニングする種は、すべての列の4よりも大きい
プリント(df.b [df.a > 4])
#DF [ 'F'] = np.nan # fは列および空の割り当て非増加
#DF [ 'E'] = pd.Series([1,2,3,4,45,6]、インデックス= PDを。 DATE_RANGE('20、180101' 、=ピリオド6))
df.iloc [0,1] = np.nan
df.iloc [1,2] = np.nan
プリント(DF)
プリント(df.dropna(軸= 0、どのように=「任意」))方法=「全て」は、行を削除された場合#は、NULL値の行を削除し、すべてのNULL値(即ち、その行がヌルである)であり;軸= 1同様ときに
プリント(DF。 fillna(値= 0))#の一部がヌル0充填さ
df.isnullを()ヌル部#を見つけるために
空の値があるか否かnp.any(df.isnullを()== TRUE)#検査データがありますTrueを返します

#データ= pd.read_csv( 'ファイル名.CSV')#pandasインポートファイル
#1 data.to_pickle( 'ファイル名.pickle')は、ファイルを保存#pandas
#concat
((DF1 = pd.DataFrame(np.ones 3,4-を))* 0、列= [ 'A'、 'B'、 'C'、 'D'])
DF2 = pd.DataFrame(np.ones((3,4))* 1、列= [ 'A' 、 'B'、 'C'、 'D'])
DF3 = pd.DataFrame(np.ones((3,4))* 2、列= [ 'A'、 'B'、 'C'、「D 「])
印刷(pd.concat([DF1、DF2、DF3]、軸= 0、ignore_index = TRUE))#DF1、DF2、DF3垂直に合わせて並べ替えインデックス
#join、[インナー、アウター]
DF4 = pd.DataFrame(np.ones((3,4))* 0、列= [ 'A'、 'B'、 'C'、 'D']、インデックス= [1,2,3])
DF5 PD = .DataFrame(np.ones((3,4))* 1、列= [ 'B'、 'C'、 'D'、 'E']、インデックス= [2,3,4])
pd.concat( [DF4、DF5])#1 DF4 、別の非DF5データの列を記入しない
([DF5 DF4、] pd.concatを =「内部」結合)位=「外側」、デフォルトのフォーマット、及びpd.concat([DF4に参加するとき、同じ列保持部で混合しました、DF5])同じ
pd.concat([DF4、DF5]、参加= 'インナー'、ignore_index = TRUE)
pd.concat([DF4、DF5]、軸= 1)は、SQLの総数に接続されている
pd.concat([DF4、DF5] 、軸= 1、join_axes = [ df4.index])# SQL接続左に対応
df4.appendを(DF5、ignore_index = TRUE)
df4.append([DF5、DF5]、ignore_index = TRUE)
S1 = pd.Series( [1,2,3,4]、インデックス= [ 'A'、 'B'、 'C'、 'D'])
印刷(df4.append(S1、ignore_index = TRUE))
キーDFによってTWOマージ/ (データベースにおいて使用することができるキー )、 辞書の形で使用されるような、例えば、データ列である必要はないサイドキー列によって結合
#簡単な例
[「K0:pd.DataFrame =({「キー」左''のKI '' K2 '' K3 ']、
' A ':[' A0 '' A1 '' A2 '' A3 ']、
' B ':[' B0 '、(BL)、 'B2'、 'B3']})
右= pd.DataFrame({[キー':[' K0' 、 'K1'、 'K2'、 'K3']、
'C':[ 'C0'、 'C1'、 'C2'、 'C3']、
'D':[ 'D0 」、 'D1'、 'D2'、 'D3']})
印刷(左)
印刷(右)
RES = pd.merge(左、右、= 'キー' ON)#キーのインストールマージ
プリントを(RES)

#は、2つのキーが検討
[ 'K0'、 'K0'、 'K1'を、 'K2']:= pd.DataFrame({ 'KEY1'左
'KEY2':[ 'K0'、 'K1'、 'K0'、 'K1']、
'A':[ 'A0'、 'A1'、 'A2'、 'A3']、
'B':[ 'B0'、 'B1'、 'B2'、 'B3']})
右= pd.DataFrame({ 'KEY1':[ 'K0'、 'K1'、 'K1'、 'K2']、
'KEY2':[ 'K0'、 'K0'、 'K0'、 'K0']
'C':[ 'C0'、 'C1'、 'C2'、 'C3']、
'D':[ 'D0'、 'D1'、 'D2'、 'D3']})
プリント(左)
プリント(右)
RES = pd.merge(= [ 'KEY1'、 'KEY2']に、右、左、どの=「インナー」)#デフォルトどの=「インナー」、KEY1、KEY2のために同じラインデータ合成
#がどのよう= [「左」、#outerとき 「右」、「外側」、「内側」]、 KEY1に従って、KEY2は異なる左KEY1および右、KEY2を含む、直接すべてのデータを組み入れ
#の接続左に対応する(= '左'方法= [ 'KEY1'、 'KEY2']上、右、左)RES = pd.merge
印刷(RES)

インジケータ#
DF1 = pd.DataFrame({ 'COL1':[0,1]、[col_left ':[ 'A'、 'B']})
DF2 = pd.DataFrame({ 'COL1':[1,2、 2]、 'col_right':[2.2.2]})
プリント(DF1)
プリント(DF2)
RES = pd.merge(= 'COL1'、どのよう= 'アウター'、インジケータON DF1、DF2、= TRUE)増加マージ表示するための#1 _merge
#インジケータのカスタム名が与え
RES = pd.merge(ON DF1、DF2を、= 'COL1'、= '外'、インジケータ= 'indicator_column'どのように)#がindicator_columnで増加(例えばleft_only)をマージするディスプレイケース

インデックスによってマージ位
=、インデックス{[ 'B0'、 'B1'、 'B2']:[ 'A0'、 'A1'、 'A2']、 'B' 'A'} = pd.DataFrame(左[ 'K0'、 'K1'、 'K2'])
右= pd.DataFrame({ 'C':[ 'C0'、 'C2'、 'C3']、 'D':[ 'D0'、「D2 」、 'D3']}、インデックス= [ 'K0'、 'K2'、 'K3'])
印刷(左)
印刷(右)
#1 left_indexとright_index、left_index默认为ナン、这里将其改为用インデックス合并
RES = pd.merge(右、左、left_index =真、right_index = trueの場合、どのよう= '外側')
RES = pd.merge(右、左、left_index =真、right_index = trueの場合、どのよう= 'インナー')

#ハンドル重複、サフィックス添加后缀
少年= pd.DataFrame({ 'K':[ 'K0'、 'K1'、 'K2']、 '年齢':[1、2、3]})
少女= pd.DataFrame ({ 'K':[ 'K0'、 'K0'、 'K3']、 '年齢':[4、5、6]})
= K ''にRES = pd.merge(男の子、女の子、サフィックス= [ '_少年'、 '_girl']、どのよう= 'インナー')#区别K相同、对应不同数据的归属(age_boy、age_girl)
プリント(RES)
= K 'にRES = pd.merge(男の子、女の子、 」、サフィックス= [ 『_少年』、 『_girl』]、どのよう= 『外側』)
位パンダの関数をマージ結合と同様です。マージわかっている場合は、参加を理解します

#pandasプロット
PLT用としてインポートmatplotlib.pyplot
#プロットデータ
#シリーズ
データ=のpd.Series(np.random.randn(1000)、インデックス= np.arange(1000))
データ= data.cumsum()
## data.plot ()

データフレーム#
データ= pd.DataFrame(np.random.randn(1000年,. 4)、インデックス= np.arange(1000)、列=リスト( "ABCD"))
データ= data.cumsum()
プロット方法:
# 'バー'' HIST ''ボックス'' KDE ''エリア'散布'、hexbin '' PIE '
AX = data.plot.scatter(X =' A 'Yが=' B」、カラー= 'DarkBlueに'、ラベル= "クラス #scatter 1") の2つだけ属性
data.plot.scatter(X = 'A'、 Y = 'C'、色= 'ライトグリーン'、ラベル= 'クラス2'、 AX = AX)#斧= AXと斧図描画図にこれを印刷します。

plt.show()

おすすめ

転載: www.cnblogs.com/liu-xiaoyi/p/11106826.html