pandasノート

6323 ワード

pandasはPython環境で有名なデータ統計パッケージで、DataFrameはデータボックスであり、データ組織方式である.pandasとnumpyはよく使われる2つのパッケージで、pandasはnumpyに依存しています.すべての使用時に、この2つのモジュールを先に導入します.
import numpy as np
import pandas as pd

1データの読み込み
CSVファイルデータの読み込み
注意:ファイルパスは'/'でなければ読めません.''を使用すると、パスの前にr文字を追加します.たとえば、次のパスです.
 r'C:\Users\。。。\filename.csv'

  • pd.read_csv(ファイルパス/ファイル名):CSVファイルからデータを読み込む
  • PS:read_csvはデフォルトで1行目のデータをヘッダとし、ヘッダのデータがない場合はheader=None、抽出時にヘッダがないことに注意してください.
    csvファイルを読み込む列を限定
  • df = pd.read_csv(ファイルパス/ファイル名、names=['col 1','col 2'])
  • 限定区切り文字のテキストtxtファイルからデータを読み込む
  • pd.read_table(filename):

  • Excelファイルデータの読み込み
  • pd.read_Excel(ファイルパス/ファイル名)
  • ps:excelファイルの特定の行の列のデータを読み込む場合は、前にu文字を付ける必要があります.
    SQLテーブル/ライブラリからのデータのインポート
  • 接続データベース:conn=pymysql.connect(host=host, port=3306, user=user, passwd=password, db=db,charset="utf8")
  • pd.read_sql(query, connection_object)

  • JSONファイル形式のデータを読み込む
  • pd.read_json(jsonファイル名):
  • URL、文字列またはHTMLファイルを解析し、tablesテーブルを抽出
  • pd.read_html(url)

  • 貼り付け板からコンテンツを取得しread_に伝えますtable()
  • pd.read_clipboard():

  • 辞書オブジェクトからデータをインポートします.キーはカラム名、Valueはデータです.
  • pd.DataFrame(dict):

  • 2データ構造:シーケンスとデータ・ボックス
    ≪シーケンス|Sequence|Oraolap≫:1 Dデータの格納
    s = pd.Series([3, -5, 7, 4], index=['a', 'b', 'c', 'd']
    

    データボックスでーたべーす:2 Dデータを格納2 Dでーたをきおく
    data = {'Country': ['Belgium', 'India', 'Brazil'],
    'Capital': ['Brussels', 'New Delhi', 'Brasília'],
    'Population': [11190846, 1303171035, 207847528]}
    df = pd.DataFrame(data, columns=['Country', 'Capital', 'Population'])
    

    3データのエクスポート
  • dfは、自己定義のデータ別名
  • CSVファイルへのデータのエクスポート
  • df.to_csv(filename.csv)

  • txtファイルにデータをエクスポートし、行数インデックスをエクスポートしません
  • df.to_csv(filename.txt,index =False)

  • Excelファイルにデータをエクスポートし、sheetテーブルの名前を付け、行数インデックスをインポートします.
  • df.to_excel(filename,sheet_name = 'testing', index = True)
  • index=Falseはデータを直接インポートし、データ行数をインポートしません.デフォルトはインポートデータ行インデックス
  • SQLテーブルへのデータのエクスポート
  • df.to_sql(table_name, connection_object)

  • Json形式でデータをテキストファイルにエクスポート
  • df.to_json(filename)

  • 4テストオブジェクトの作成
  • pd.DataFrame(np.random.rand(20,5)):
  • 20行5列の乱数からなるDataFrameオブジェクトを作成
  • pd.Series(my_list):
  • 反復可能オブジェクトmy_からList Seriesオブジェクト
  • を作成
  • df.index = pd.date_range('1900/1/30', periods=df.shape[0]):
  • 日付インデックスを1つ追加
  • 5データの表示、チェック
  • df.head(n):DataFrameオブジェクトの最初のn行
  • を表示します.
    PS:df.head():DataFrameオブジェクトの最初の5行をデフォルトで表示します.
  • df.tail(n):DataFrameオブジェクトの最後のn行
  • を表示します.
    PS: df.tail():DataFrameオブジェクトの最後の5行をデフォルトで表示します.
  • df.shape:行数と列数の表示
  • df.shape[0]:表示行数
  • df.shape[1]:列数の表示
  • df.describe():数値型列の要約を表示
  • s.value_counts(dropna=False):Seriesオブジェクトの一意の値とカウント
  • を表示します.
  • df.apply(pd.Series.value_counts):DataFrameオブジェクトの各カラムの一意の値とカウントを表示
  • df['ある列の名前].Unique()ある列の要素分類
  • 6データ選択
  • df[col]:カラム名に従い、Seriesとしてカラム
  • を返します.
  • df[[col 1,col 2]]:DataFrame形式で複数列
  • を返す
    ラベル:loc行列名で値を選択
  • s.loc[:,['type']]:typeの列を選択
  • 位置/ラベル別:ix行/列の選択
  • df.ix[:,'type']:typeの列
  • を返します.
    位置別:iloc行列の位置値を選択
  • s.iloc[0]:位置別データ選択
  • df.iloc[0,:]:最初の行
  • を返します.
  • df.iloc[0,0]:最初の列の最初の要素
  • を返します.
    7データクリーンアップ
  • df.columns=['a','b','c']:列名の名前変更
  • pd.isnull():DataFrameオブジェクトのNull値をチェックし、Boolean配列
  • を返します.
  • pd.notnull():DataFrameオブジェクトのNull以外の値を確認し、Boolean配列
  • を返します.
  • df.dropna():空の値を含むすべての行を削除
  • df.dropna(axis=1):空の値を含むすべての列
  • を削除
  • df.dropna(axis=1,thresh=n):n個未満のNULL値をすべて削除
  • df.Fillna(x):DataFrameオブジェクトのすべての空の値
  • をxで置き換えます.
  • s.astype(float):Seriesのデータ型をfloat型に変更
  • s.replace(1,'one'):1に等しいすべての値を「one」で置き換える
  • s.replace([1,3],['one','three']):1の代わりに'one'を使用し、3の代わりに'three'を使用します.
  • df.rename(columns=lambda x:x+1):一括変更列名
  • df.rename(columns={'old_name':'new_name'}):選択的にカラム名を変更
  • df.rename(index=lambda x:x+1):一括名前変更インデックス
  • 8データ処理:Filter、Sort、GroupBy
  • df[df[col]>0.5]:col列の値が0.5より大きい行
  • を選択
  • df.sort_values(col 1):列col 1に従ってデータを並べ替え、デフォルトの昇順に
  • を並べ替えます.
    PS:新版pythonサポートsort_values、旧版python解釈器はsort_をサポートしていませんvaluesをsortに変えればいいです
  • df.sort_values(col 2,ascending=False):列col 1降順にデータ
  • を並べ替える
  • df.sort_values([col 1,col 2],ascending=[True,False]):まず列col 1昇順に並べ、その後col 2降順にデータ
  • を並べます
  • df.groupby(col):列colでグループ化されたGroupbyオブジェクト
  • を返します.
  • df.groupby([col 1,col 2]):複数の列でグループ化されたGroupbyオブジェクト
  • を返します.
  • df.groupby().sum()統計
  • df.groupby(col 1)[col 2]:カラムcol 1でグループ化されたカラムcol 2の平均値
  • を返す
  • df.pivot_table(index=col 1,values=[col 2,col 3],aggfunc=max):列ごとにcol 1をグループ化し、col 2とcol 3の最大値を計算するデータピボットテーブル
  • を作成します.
    PS:pivot_table(インデックス、値、列、関数aggfunc=)
  • df.groupby(col1).Agg(np.mean):カラムcol 1でグループ化されたすべてのカラムの平均値
  • を返します.
  • data.apply(np.mean):DataFrameの各列に関数npを適用する.mean
  • data.apply(np.max,axis=1):DataFrameの各行に関数npを適用する.max

  • 9データ集計
  • df1.append(df 2):df 2の行をdf 1の末尾
  • に追加
  • pd.concat([df 1,df 2],axis=1):df 2の列をdf 1の列の末尾に追加します.すなわち、総列数がdf 1とdf 2の列数の和
  • PS:pd.concat([df 1,df 2])文字列が結合する、df 2がdf 1データの後に結合され、両者は1=df 1に結合する.append(df2)
  • 軸接続pd.concat()

  • この方法はトップレベルの方法しかない、属性の方法がないのでdfを通過できない.concat()を呼び出して、注意!!!
  • df1.join(df 2,on=col 1,how='inner'):df 1の列とdf 2の列に対してSQLのjoin
  • を実行する
    10データ統計
  • df.describe():データ値列の要約を表示
  • df.mean():すべてのカラムの平均値
  • を返します.
  • df.corr():列と列の間の相関係数
  • を返します.
  • df.count():各列の非NULL値を返す個数
  • df.max():各カラムの最大値
  • を返します.
  • df.min():各列の最小値
  • を返します.
  • df.Median():各列の中位数
  • を返します.
  • df.std():各列の標準差
  • を返す
  • df[].value_counts():ある列の異なるフィールドの個数
  • を統計する
    11データ
  • df.dtypesタイプ
  • df.index行インデックス
  • df.reset_Index('インデックスフィールド')インデックスをカラム
  • に変換
  • df.set_index(「列フィールド」)列フィールドをインデックス
  • に変換
  • df.shape行数と列数
  • df.colums列名
  • df.values値
  • 12グラフ
  • アイコンplotを表示する.show()
  • df.plot(kind='bar')柱状図
  • df.plot()線図