ひと目でわかるパンダデータ分析 – 短時間で素早くデータ分析を学ぶためのガイド(記事の最後に書籍を掲載)


序文

大手企業でデータ アナリストとして 3 年間働いた後は、いくつかのツール、特に Python のデータ分析の三剣士である Pandas、Numpy、Matplotlib を習得する必要があります。個人的な経験から言えば、Pandas はマスターする必要があり、使いやすいデータ構造とデータ操作ツールを提供し、Python で構造化データをより簡単かつ効率的に処理できるようになります。一般的な時系列データや財務データを処理する場合でも、さまざまなデータベースとリンクする場合でも、さまざまなアルゴリズムを使用して計算や分析を行う場合でも、Pandas のデータ処理サポートなしでは行えません。データアナリストとして、ほぼ毎日 Pandas を扱わなければならないため、Pandas の学習は避けられませんが、Pandas を効率的に学習するにはどうすればよいかは、深く考える必要がある問題です。したがって、この記事では、Pandas を使用した私の長年の個人的な経験を利用して、Pandas データ分析を始めたい学生向けに学習体験とルートを共有します。

共有することに不安を感じる場合、またはそれが誤ったプロパガンダであると思われる場合は、ブロガーが特別に書いたデータ分析コラムを読むことができます。

1 記事で簡単に学習できるシリーズ - データ分析icon-default.png?t=N7T8https://blog.csdn.net/master_hunter/category_11740969.htmlのコラム「基礎を固め、さまざまな Pandas 基本機能の使い方をマスターする。実践的な使い方プロジェクトを手がかりに、データ分析の原理を深く理解し、データを処理するための Pandas の基本的な方法をマスターし、最終的に一般的なビジネス ニーズに対処するための Pandas の使用とデータ モデリング データ処理を完全にマスターできるようになります。」 これは私のオリジナルです。という意図でこのコラムを作成していますので、虚偽の宣伝を気にせず、安心して読んでいただければ幸いです。

書籍贈呈イベントのルール

  1. 私のブログをフォローする: 私のブログのフォロワーになると、すべての新しいブログ投稿やイベント情報を最初に受け取ることができます。
  2. 参加メッセージを残す: 各号の記事の下にメッセージをお願いしますメッセージ内容は各号の参加方法をご覧ください。
  3. 結果発表: 数名の幸運な読者にコメント欄で無料プレゼントが選ばれ、当選者のリストは2023/9/17 12:00:00にコメント エリアの上部に固定されます。

ファン選択アルゴリズムは完全に透過的です。

各イベントは当選者の発表をもって終了となります。

参加方法

書籍寄付イベントへの参加は非常に簡単で、次の手順に従うだけで参加とみなされます。

  1. ブロガーをフォローしてください
  2. この記事の下にコメント「1 つの記事ですぐに学べます - Pandas データ分析」

今号のギフトブック「Pandas Data Analysis」は記事の最後にあります。


1.パンダ学習コンテンツ

誰もが覚えやすいように 4 次元マップを作成しました. 実際、Pandas がデータ分析に使用するモジュールはそれほど複雑ではありません. 多くの複雑な機能は 1 つの関数で簡単に解決できますが、さらに多くのことを実現したい場合は効率的な結果を得るには、これらを使用する必要があります。 関数的な機能を考えるのは非常に困難です。たとえば、列を複数の列に分割したり、複数のファイルをバッチ集計したりする要件には、一定レベルの Pandas の熟練度が必要です。一般的に、Pandas の上記の機能をマスターすれば、基本的にビジネスニーズには十分対応できますので、あとは習熟を深めていくだけです。ただし、Pandas は単独で使用されることはなく、numpy、matplotlib、sklearn などの他のサードパーティ ライブラリと組み合わせて使用​​されるシナリオが多いため、他の機能を使いこなす柔軟性が必要です。

2.パンダの学習ルート

Pandas のデータ分析を学びたい人は、Excel や PowerBI などの一般的なデータ分析ツールに触れており、データ分析の基礎知識を理解している必要があります。仕事の効率化を図るために Pandas を学ぶ人も多いですし、データ処理のために Pandas を学ぶ人も多いと思います。つまり、Pandas を学ぶ前にある程度の学習能力が必要だと思います。私も同じなので、私のおすすめの学習ルートとコラムの順序記述に一貫性があるため、以下を参照してください。

1. まず Pandas のデータ構造を学習する

ツールの基本部分であるデータ構造をしっかりと理解しておく必要があり、まずSeriesとDataFrameをマスターする必要があります。2 つのデータ構造は理解するのが難しくなく、言語も共通なので、C 言語の構造や Python や JAVA のデータ構造を理解していれば理解できます。重要なのは、関数を使用してこれらのデータ構造を処理する方法です。各データ構造の 3 つの主要な操作を主に学習し、基礎を築いた後は、テーブル構造のデータを出力する必要があるため、複雑なテーブル操作を実行できるようになります。

1.シリーズ

2.データフレーム

  • 作成する
    • pd.Series()
    • pd.DataFrame()
  • 変換演算
    • 辞書変換、配列変換
  • インデックス操作
    • インデックスの名前変更、インデックスのリセット
  • クエリ操作
    • .at()、.iloc()、.loc()
  • スライス操作
  • スプライス作業
    • pd.concat()、pd.merge()

2. 一般的な I/O 操作

データ分析にパンダを使用する利点は、パンダが Excel ほど厳密ではなく、xlsx または csv ファイルの読み取りと書き込みのみができることです。一部の json ステートメントと SQL ステートメントを読み取りおよび書き込みキャリアとして使用し、それらをテーブル構造に変換することもできます。このように、データ形式に影響されず、自由にデータを出力できるようになったので、次に学習するのは一般的な I/O 操作です。しかし現時点では、Pandas の I/O 操作は pd.read_csv や pd.read_excel() と同じくらい単純ではないのではないかと多くの人が疑問に思うでしょう。

もちろん、通常使用する readI/O 関数は、データ形式を処理するために内部コードを読み取って書き込みますが、多くの場合、read_csv などの一部のパラメーターを直接変更して、データ処理作業の一部を直接完了することができます。高度な機能により、多くの作業を節約できます。以下に例を示します。

csv ファイルがある場合、1 つの列の型をテキスト型に変更したいとします。

df_csv=pd.read_csv("user_info.csv")
df_csv.user_id=df_csv.user_id.astype(str)

一般に、上記のアプローチを採用しますが、複数の列をフォーマットに変換する場合は、まだ比較的面倒であり、read_csv() を使用して直接変更できます。

df_csv=pd.read_csv(r'\user_info.csv',dtype={'user_id':'str'})

もちろん、readシリーズの各関数には基本的に20以上の変更可能なパラメータがあり、上記のようなケースも多く、使っていると自然と出てくるものです。

Pandas には多くの I/O 関数が用意されていますが、頻繁に使用し、次の 8 つをマスターする場合は、それらを読み込むだけで十分です。他のデータ形式が関係する場合は、それらを再度使用できます。多くのパラメーターは似ています。

  • pd.read_csv()-pd.to_csv()
  • pd.read_excel()-pd.to_excel()
  • pd.read_sql()-pd.to_sql()
  • pd.read_json()-pd.to_json()

3. テーブル構造に対する複雑な操作

1. データクリーニング

Pandas は機械学習のデータ クリーニング ツールとしてよく使用されており、数学的なモデリングや分析を行うことが多い友人は基本的にパンダに触れています。一般に、データ クリーニングは、NULL 値を含むデータ、外れ値を含むデータ、および繰り返し値を含むデータの 3 種類のデータを処理するために実行されます。欠損値の処理には、Null 値のカウント、フィルタリング、充填が含まれ、これらすべてに対応する関数処理が含まれます。重複値には、duplicate() Drop_duplicates() などが含まれます。その他の処理は言うまでもなく、データ処理の必要がある場合は、次のことができます。私のコラムを読んでください。

2. 複雑な操作のインデックス付け

DataFrame のインデックス操作は数多くあり、一般的なビジネスで使用されるものは比較的単純ですが、要件によってはインデックスの使用量が多く、使いにくい場合があります。一般的に使用されるインデックス操作には、インデックス リセットが含まれます。

たとえば、元のデータセットは次のとおりです。

reset_index はすべてのインデックスを列に変換します。

インデックスをリセットします。

index.set_index('ID')

 

より複雑なインデックス操作には、長い幅のテーブル データを変換するためのインデックスの再形成が含まれます。この関数を理解して使用するには、ある程度の労力が必要です。長い幅のテーブル変換は、Hive などの NoSQL データベースの多くのテーブルに適用されるか、複数のインデックスが存在します。請求書データなどのデータです。

インデックスの再整形とは、元のインデックスを再構築することであり、DataFrame の構造テーブルによれば、データの x 座標軸と y 座標軸として理解できる列名と行名の対応関係に基づいてデータをロックできます。たとえば、user2 の 2021 年のデータを検索したいとします。インデックスの形状を変更することは、座標系を変更することに似ており、ベースを変更することと同じです。

2 つの特徴を通じて一意の値を決定するこの方法は、テーブル構造だけでなくツリー構造でも表すことができます。

ツリー構造は実際には、表形式の行インデックスを変更せずに維持しながら、列インデックスを 2 次行インデックスに変更します。これは、表形式データの階層インデックスを確立するのと同じです。

pandas で使用されるメソッドは stack() です。

df1.stack()

 user1 合計 100
       2020 30
       2021 30
       2022 40
user2 合計 120
       2020 30
       2021 50
       2022 40
user3 合計 130
       2020 40 2021 50        2022 40 user4合計 150        2020 50
       2021        20        2022 80 user5 合計 160        2020 40        2021 40        2022 80 dtype: int64










 

 pandas が提供する stack() メソッドによれば、長いテーブルと広いテーブルの間で簡単に変換できます。

 幅の広いテーブルを長いテーブルに変換するには、名前と都市を変更せずに、最初に年情報を行インデックスに変更する必要があるため、最初に名前と都市をインデックスとして設定してから、stack() メソッドを呼び出す必要があります。列を変更するには、インデックスも行インデックスに変換され、最後に、reset_index() メソッドを使用してインデックスがリセットされます。

df1.set_index(['name','city'],inplace=True)

 

混乱している場合は、私のブログ投稿を読んでください: 1 つの記事で簡単に学習 (9) - データ分析のための Pandas インデックスの再構成による長大なテーブル データ変換の実装

 長いテーブルを広いテーブルに変換することもありますが、ここでは説明しません。

3. 数値演算

数値演算は基本演算とみなされます。私のマインド マップを見てください。必要な演算をいくつか示します。数値ソート:

df1.sort_values(by=['old','weight'],ascending=[True,False])

  上記のコードは、まず old で昇順に並べ替えることを意味します。同じ値が見つかった場合は、重みで降順に並べ替えます。

ランキング:

se1=df1['old'].rank()
df1.insert(0,'randk',se1)
df1.sort_values(by='old')

 

これらの操作は SQL では非常に一般的です。Pandas はデータベース テーブルの操作を参照して設計されました。一般的に、テーブルに対する SQL 操作は Pandas で利用できます。Pandas は基本的に、SQL でよく使用されるすべてのグループ化関数と集計関数を複製します。

4. データのグループ化

データ エンジニアはおそらく目を閉じたまま groupby を入力できるでしょう。Pandas はデータベース処理テーブル内のさまざまな集計関数を完全に複製します。グループ化には 3 つの手順があります。

 最初のステップは、指定されたデータ テーブルを異なるキーに従っていくつかのグループに分割することです。2 番目の部分では、これらのグループに対して計算操作を実行します。これはカスタム関数操作として設定できます。3 番目のステップの計算が完了したら、マージ操作を実行して新しいテーブルを取得します。この操作は、ビッグ データ アーキテクチャ コンピューティング フレームワークの MapReduce に非常に似ており、上記の操作の後、無秩序に配置されたテーブルを操作して、必要なデータを取得できます。ここでは説明しませんが、Pandas には SQL グループ化のベンチマーク機能があることを理解する必要があります。

5. 時系列処理

一般に、データベースやログファイルから読み込んだデータには時系列が含まれています。時系列データの処理やリアルタイム解析を行うには、時系列を分類してアーカイブする必要があります。一部のオブジェクトや文字、整数などは分類する必要があります。時間の計算やその他の操作を容易にするために、パンダが認識できる日時型データに変換します。あまり私から指示する必要はありませんが、その頃には誰もが自然にそのような方法を覚えますので、機能的にはよく使われる処理をここに示します。

asfreq 変更周波数関数を使用して、各周波数変更に各タイム スライスの値を割り当てることができます。

rng = pd.date_range('1/1/2011', periods=2, freq='d')
ts = pd.Series(np.random.randn(len(rng)), index=rng)
converted = ts.asfreq('360Min', method='pad')

 

系列を日次周波数リサンプルにリサンプリングします。

rng = pd.date_range('1/1/2011', periods=5, freq='H')
ts = pd.Series(np.random.randn(len(rng)), index=rng)
ts.resample('D').mean()

 

系列データ型の変換

df_csv['collect_date']=pd.to_datetime(df_csv['collect_date'],format="%Y-%m-%d")
df_csv.dtypes

 

4. テキストデータ処理

Pandas で使用されるテキスト データには 2 種類があります。

  • オブジェクト: 通常は NumPy 配列
  • string: 最も一般的なテキスト データ

テキスト ファイルを保存するには文字列を使用するのが最も一般的ですが、データの処理と変換にデータフレームとシリーズを使用する場合は、オブジェクト データ型がよく使用されます。Pandas バージョン 1.0 より前は、オブジェクト タイプのみが存在していたため、すべての文字データと非文字データがオブジェクト モードで格納され、処理が混乱してしまいました。後続のバージョンでは、テキスト データ処理の結合問題をより適切に区別するために String が最適化および追加されました。現在のオブジェクト タイプは引き続きテキスト データと配列タイプの文字列データですが、Pandas はその後の互換性のためにオブジェクト タイプをデフォルトのテキスト データ ストレージ タイプとして設定します。

String データ型を処理する方法は数多くあり、シーケンスとインデックスの両方には、配列の各要素を簡単に操作できる一連の文字列処理メソッドが装備されています。最も重要なことは、これらのメソッドでは欠落している /NA 値が自動的に除外されることです。これらのメソッドは str 属性を通じてアクセスされ、通常、名前は同等の (スカラー) 組み込み文字列メソッドと一致します。

よく使用されるケースをいくつか示します。

1. 大文字と小文字の変換

s=pd.Series(['A','b','C',np.nan,'ABC','abc','AbC'],dtype='string')

 小文字変換 ​​lower()

s.str.lower()

 

大文字変換 ​​upper()

s.str.upper()

 

2. 文字列スペースの削除

これは正規表現とともによく使用されます。つまり、コードがクローラに頻繁に表示されることを意味します。この方法には 3 つの制御形式があり、ここではテスト ケースを包括的にカバーするデータ セットを作成します。

s=pd.Index([' A','A ',' A ','A'],dtype='string')

 すべてからstrip()を削除します

s.str.strip()

 

インデックスの文字列メソッドは、DataFrame 列の処理または変換に特に役立ちます。たとえば、先頭または末尾にスペースがある列が存在する場合があります。

df = pd.DataFrame(
    np.random.randn(3, 2), columns=[" Column A ", " Column B "], index=range(3)
)

 

 列インデックスを抽出した後、str クラス メソッドを使用して変換を処理できます。関数を一緒に使用する場合は、他の関数と一緒に使用して、複雑な変換効果を実現することもできます。

df.columns = df.columns.str.strip().str.lower().str.replace(" ", "_")

 

3. 分割と接続

文字列を分割するには、通常、split 関数を使用します。これは非常に便利です。

s2 = pd.Series(["a_b_c", "c_d_e", np.nan, "f_g_h"], dtype="string")
s2.str.split("_")

 

cat() に基づいて、それぞれ Index.str.cat のメソッドは、シーケンスまたはインデックスをそれ自体、または他のシーケンスまたはインデックスと連結できます。

シリーズ (またはインデックス) の値は連結できます。

s = pd.Series(["a", "b", "c", "d"], dtype="string")
s.str.cat(sep=",")

 

cat() の最初の引数は、呼び出しシーケンス (またはインデックス) の長さと一致する限り、リストのようなオブジェクトにすることができます。

s.str.cat(["A", "B", "C", "D"])

 na_rep が指定されていない限り、どちらかの側に欠損値があると、結果にも欠損値が生じます。

s.str.cat(t, na_rep="-")

 

これ以上は説明しませんが、興味のある学生は私のデータ分析コラムを読んでください。

5. クイックチャートの視覚化

一般に、データマイニングやデータ分析、あるいはデータベースからデータを抽出するビッグデータ開発を行うとき、必然的にテーブルデータを左右に​​見る必要があり、常にテーブルデータに基づいてデータの視覚化を即座に生成できることを望んでいます。データをより直観的に表示するためのグラフ。データを視覚化したい場合、多くの場合、データ変換や多くのコード処理だけでなく、多くのライブラリや関数を呼び出す必要があります。これは非常に面倒な作業です。確かに、データの視覚化だけであれば、データの視覚化のためのエンジニアリング プログラミングを実装する必要はありません。これは、データ アナリストや専門のレポート ツールが行うことです。日常の分析については、私たちが自分たちのニーズに応じて直接実行します。素早く絵を描くことができ、Pandas にはこの機能があり、もちろん matplotlib ライブラリに依存していますが、コードの圧縮が容易です。

この記事はここで終わります。Pandas データ分析コラム シリーズは長期間にわたって更新されており、基本的にパンダを使用して日常業務と定期的なデータ分析を処理するためのあらゆる側面をカバーしています。基本的なデータ構造の段階的な導入から、さまざまな種類のデータの処理、およびパンダの一般的な機能の専門的な説明まで、作成には多くの時間と労力が費やされました。データ開発については、コラムの購読をお勧めします。できるだけ早く実行します。Pandas データ分析の最も実践的で一般的に使用される知識を学びます。


⭐️おすすめの本

清華社通信 【読書の秋プラン】クーポンをゲットしてお得に今すぐお楽しみください

IT Good Book 5倍プラス10元閾値なしクーポン:https://u.jd.com/Yqsd9wj

開催期間:9月4日~9月17日、先着順ですので、お早めにゲットしてください

「パンダデータ分析」

簡単な紹介

 「Pandas データ分析」では、主にデータ分析の概要、PandasDataFrame の使用、Pandas を使用したデータの並べ替え、Pandas DataFrame の集約、Pandas と Matplotlib を使用したデータの視覚化、Seabom およびカスタム テクノロジの使用、グラフ作成など、Pandas データ分析に関連する基本的なソリューションについて詳しく説明します。財務分析、ルールベースの異常検出、Python 機械学習の紹介、より適切な予測の作成、機械学習の異常検出など。さらに、本書では、読者が関連ソリューションの実装プロセスをさらに理解できるように、対応する例とコードも提供します。
  「Pandas Data Analysis」は、大学のコンピュータおよび関連専攻の教科書および指導参考書として適しているほか、関連する開発者の自習書およびリファレンスマニュアルとしても使用できます。

編集者の選択

Pandas は、Python のデータ サイエンスの代名詞である強力で人気のあるライブラリです。この本では、Pandas を使用して、株式市場データ、シミュレートされたハッカー攻撃データ、気象傾向、地震データ、ワインデータ、天文学データなどの実世界のデータセットに対してデータ分析を実行する方法を紹介します。Pandas を使用すると、表形式のデータを効率的に操作できるようになり、データの整理と視覚化が容易になります。

おすすめ

転載: blog.csdn.net/master_hunter/article/details/132869828