pandasノート
6323 ワード
pandasはPython環境で有名なデータ統計パッケージで、DataFrameはデータボックスであり、データ組織方式である.pandasとnumpyはよく使われる2つのパッケージで、pandasはnumpyに依存しています.すべての使用時に、この2つのモジュールを先に導入します.
1データの読み込み
CSVファイルデータの読み込み
注意:ファイルパスは'/'でなければ読めません.''を使用すると、パスの前にr文字を追加します.たとえば、次のパスです. 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データの格納
データボックスでーたべーす:2 Dデータを格納2 Dでーたをきおく
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、GroupBydf[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()線図
import numpy as np
import pandas as pd
1データの読み込み
CSVファイルデータの読み込み
注意:ファイルパスは'/'でなければ読めません.''を使用すると、パスの前にr文字を追加します.たとえば、次のパスです.
r'C:\Users\。。。\filename.csv'
csvファイルを読み込む列を限定
Excelファイルデータの読み込み
SQLテーブル/ライブラリからのデータのインポート
JSONファイル形式のデータを読み込む
貼り付け板からコンテンツを取得しread_に伝えますtable()
辞書オブジェクトからデータをインポートします.キーはカラム名、Valueはデータです.
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データのエクスポート
txtファイルにデータをエクスポートし、行数インデックスをエクスポートしません
Excelファイルにデータをエクスポートし、sheetテーブルの名前を付け、行数インデックスをインポートします.
Json形式でデータをテキストファイルにエクスポート
4テストオブジェクトの作成
PS:df.head():DataFrameオブジェクトの最初の5行をデフォルトで表示します.
PS: df.tail():DataFrameオブジェクトの最後の5行をデフォルトで表示します.
ラベル:loc行列名で値を選択
位置別:iloc行列の位置値を選択
7データクリーンアップ
PS:新版pythonサポートsort_values、旧版python解釈器はsort_をサポートしていませんvaluesをsortに変えればいいです
PS:pivot_table(インデックス、値、列、関数aggfunc=)
9データ集計
この方法はトップレベルの方法しかない、属性の方法がないのでdfを通過できない.concat()を呼び出して、注意!!!
10データ統計
11データ