【100日でPython上手になる】Day54: Pythonデータ分析_Pandasエントリーの基礎、コアデータ構造Serise、DataFrame、Indexオブジェクト、データインポート・エクスポート操作

目次

1.パンダの紹介

1.1 パンダとは何ですか?

1.2 なぜパンダを使うのか?

1.3 Pandas ライブラリのインストールとインポート

2. Pandas のコアデータ構造

2.1 シリーズ: 1 次元ラベル配列

2.1.1 シリーズの作成

2.1.2 カスタムインデックス

2.2 DataFrame: 2 次元データ テーブル

2.2.1 データフレームの作成

2.2.2 CSVファイルからデータフレームをインポート

2.3 インデックス オブジェクト: 行ラベルと列ラベルのコンテナー

2.3.1 インデックスオブジェクトの作成

2.3.2 行インデックスと列インデックス

2.3.3 Index オブジェクトを使用したインデックス作成とスライス

2.3.4 Index オブジェクトのプロパティとメソッド

3. データのインポートとエクスポート

3.1 CSVファイルからデータをインポートする

3.2 Excelファイルからデータをインポートする

3.3 SQL データベースからデータをインポートする

3.4 異なる形式のファイルへのデータの保存


1.パンダの紹介

1.1 パンダとは何ですか?

Pandas は、データ操作とデータ分析のための Python ライブラリです。特に構造化データの処理に適した、高性能で使いやすいデータ構造とデータ分析ツールを提供します。Pandas の 2 つの主なデータ構造は、SeriesとですDataFrame

  • シリーズ: シリーズは、Python のリストまたは配列に似た 1 次元のラベル付き配列ですが、各要素にはラベル (インデックス) があります。これにより、Series は時系列データやその他のラベル付きデータを操作するのに非常に便利になります。

  • DataFrame : DataFrame は、データベース テーブルや Excel スプレッドシートに似た 2 次元の表形式のデータ構造です。これには複数の列が含まれており、それぞれに異なるデータ型を指定でき、行ラベルと列ラベルが付いています。

Pandas ライブラリは、データのフィルタリング、並べ替え、グループ化、集計、結合、その他の機能を含む多くのデータ操作および分析ツールも提供し、ユーザーが大規模なデータセットを簡単に処理および分析できるようにします。

1.2 なぜパンダを使うのか?

Pandas を使用すると、次のような利点があります。

  1. データ構造: Pandas のデータ構造は柔軟で、時系列、表形式データ、多次元データなどを含むさまざまなデータ型や形式で動作します。

  2. データ クリーニング: Pandas は、欠損値、重複値、外れ値などの処理を含む、強力なデータ クリーニングおよび前処理機能を提供します。

  3. データ分析: Pandas には、統計分析、データの観点、相関分析などを実行できる豊富なデータ分析ツールがあり、データの特性や傾向についての洞察を得るのに役立ちます。

  4. データ視覚化: Pandas を Matplotlib や Seaborn などの他のデータ視覚化ライブラリと組み合わせて、さまざまなデータ視覚化チャートを簡単に作成できます。

  5. データのインポートとエクスポート: Pandas は、CSV、Excel、SQL データベースなどを含むさまざまなデータ ソースからのデータのインポートをサポートし、処理されたデータをさまざまな形式にエクスポートすることもできます。

  6. 広範なコミュニティ サポート: Pandas には、広範なドキュメント、チュートリアル、サポートを提供する大規模なユーザー コミュニティがあり、Pandas の学習と使用が容易になります。

1.3 Pandas ライブラリのインストールとインポート

Pandas ライブラリをインストールするには、Python のパッケージ マネージャーである pip を使用できます。コマンド ラインで次のコマンドを実行して、Pandas をインストールします。

pip install pandas

インストールしたら、Python スクリプトまたは対話型環境で Pandas ライブラリをインポートできます。

import pandas as pd

通常、Pandas は慣例に従ってインポートされ、 に名前が変更されますpd。これにより、Pandas の関数とデータ構造が使いやすくなります。Pandas をインポートした後、データの処理と分析に Pandas の使用を開始できます。

2. Pandas のコアデータ構造

2.1 シリーズ: 1 次元ラベル配列

Series は 1 次元配列に似たデータ構造ですが、Numpy 配列とは異なり、データの識別とアクセスに使用できるラベル (インデックス) を持ちます。シリーズは、データ部分とインデックス部分の 2 つの部分で構成されます。

2.1.1 シリーズの作成

import pandas as pd

# 创建一个Series,包含一些整数数据
data = pd.Series([1, 2, 3, 4, 5])

# 输出Series
print(data)

 出力結果:

0    1
1    2
2    3
3    4
4    5
dtype: int64

上の例では、Series には一連の整数データが​​含まれており、デフォルトの整数インデックス (0、1、2、3、4) が​​自動的に割り当てられます。

2.1.2 カスタムインデックス

import pandas as pd

# 创建一个Series,指定自定义索引
data = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])

# 输出Series
print(data)

 出力結果:

a    1
b    2
c    3
d    4
e    5
dtype: int64

この例では、Series のカスタム インデックスを指定し、各インデックスはデータ値に対応します。 

2.2 DataFrame: 2 次元データ テーブル

DataFrame は Pandas で最も一般的に使用されるデータ構造で、スプレッドシートや SQL データベースの表形式のデータに似ています。DataFrame は行と列で構成され、各列には異なるデータ型を含めることができます。

2.2.1 データフレームの作成

import pandas as pd

# 创建一个简单的DataFrame,包含姓名和年龄列
data = {'姓名': ['Alice', 'Bob', 'Charlie', 'David'],
        '年龄': [25, 30, 35, 40]}

df = pd.DataFrame(data)

# 输出DataFrame
print(df)

出力結果:

      姓名  年龄
0   Alice  25
1     Bob  30
2  Charlie  35
3    David  40

 上の例では、name 列と age 列を含む DataFrame を作成しました。各列のデータ型は異なる場合があります。

2.2.2 CSVファイルからデータフレームをインポート

import pandas as pd

# 从CSV文件导入数据创建DataFrame
df = pd.read_csv('data.csv')

# 输出前几行数据
print(df.head())

        この例では、CSV ファイルからデータをインポートし、DataFrame を作成する方法を示します。CSV ファイル内のデータは DataFrame に変換されます。 

2.3 インデックス オブジェクト: 行ラベルと列ラベルのコンテナー

       インデックス オブジェクトは、Pandas で行ラベルと列ラベルのコンテナーを識別するために使用されます。各 DataFrame には、Index オブジェクトである行インデックス (行ラベル) と列インデックス (列ラベル) があります。インデックス オブジェクトは不変です。つまり、作成後にその内容を変更することはできません。

以下に、Index オブジェクトの詳細な説明と例を示します。

2.3.1 インデックスオブジェクトの作成

pd.Index()Index オブジェクトは、DataFrame を使用して、または DataFrame 内で直接作成できます。ここではいくつかの例を示します。

import pandas as pd

# 使用pd.Index()创建Index对象
index1 = pd.Index(['a', 'b', 'c', 'd'])

# 直接在DataFrame中创建Index对象
data = {'姓名': ['Alice', 'Bob', 'Charlie', 'David']}
df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
index2 = df.index

print(index1)
print(index2)

出力結果

Index(['a', 'b', 'c', 'd'], dtype='object')
Index(['A', 'B', 'C', 'D'], dtype='object')

2.3.2 行インデックスと列インデックス

        DataFrame では、行と列を識別するために Index オブジェクトが使用されます。行インデックスはデータフレームの上部にあり、列インデックスはデータフレームの左側にあります。以下に例を示します。

import pandas as pd

data = {'姓名': ['Alice', 'Bob', 'Charlie', 'David']}
df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])

# 行索引
row_index = df.index
print("行索引:", row_index)

# 列索引
column_index = df.columns
print("列索引:", column_index)

出力結果:

行索引: Index(['A', 'B', 'C', 'D'], dtype='object')
列索引: Index(['姓名'], dtype='object')

2.3.3 Index オブジェクトを使用したインデックス作成とスライス

Index オブジェクトを使用して、DataFrame 内の特定の行または列を選択できます。ここではいくつかの例を示します。

import pandas as pd

data = {'姓名': ['Alice', 'Bob', 'Charlie', 'David']}
df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])

# 选择特定行
selected_row = df.loc['B']  # 通过行标签选择
print("选择行:\n", selected_row)

# 选择特定列
selected_column = df['姓名']  # 通过列标签选择
print("选择列:\n", selected_column)

# 使用loc进行切片
sliced_df = df.loc['B':'C']  # 使用行标签进行切片
print("切片行:\n", sliced_df)

出力結果:

选择行:
 姓名    Bob
Name: B, dtype: object

选择列:
A      Alice
B        Bob
C    Charlie
D      David
Name: 姓名, dtype: object

切片行:
      姓名
B      Bob
C  Charlie

2.3.4 Index オブジェクトのプロパティとメソッド

valuesIndex オブジェクトには、属性、tolist()メソッドなど、よく使用される属性とメソッドがいくつかあります。ここではいくつかの例を示します。

import pandas as pd

data = {'姓名': ['Alice', 'Bob', 'Charlie', 'David']}
df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
row_index = df.index

# 获取Index对象的值
index_values = row_index.values
print("Index对象的值:", index_values)

# 将Index对象转换为列表
index_list = row_index.tolist()
print("Index对象转换为列表:", index_list)

# 检查索引是否包含特定值
contains_value = 'B' in row_index
print("索引包含'B':", contains_value)

出力結果:

Index对象的值: ['A' 'B' 'C' 'D']
Index对象转换为列表: ['A', 'B', 'C', 'D']
索引包含'B': True

        インデックス オブジェクトは Pandas で広く使用されています。インデックス オブジェクトにはさまざまなデータ型を含めることができます。インデックス オブジェクトは、DataFrame の行と列の識別と操作に役立ち、データ分析がより便利になります。Index オブジェクトの作成方法と使用方法を理解することで、Pandas でのデータのインデックス付けとラベル付けをより深く理解できるようになります。

        これらは、Pandas の中核となるデータ構造の基本概念と例です。Series、DataFrame、Index を使用することで、さまざまなデータセットをより柔軟に処理および分析できます。

3. データのインポートとエクスポート

        Pandas は、さまざまなデータ ソースからデータを簡単にインポートし、そのデータをさまざまな形式でファイルに保存するための豊富な機能を提供します。

3.1 CSVファイルからデータをインポートする

CSV ファイルからデータをインポートするには、pd.read_csv()関数を使用できます。という名前の CSV ファイルがありdata.csv、次のデータが含まれているとします。

姓名,年龄
Alice,25
Bob,30
Charlie,35
David,40

データのインポート例:

import pandas as pd

# 从CSV文件导入数据
df = pd.read_csv('data.csv')

# 输出DataFrame
print(df)

3.2 Excelファイルからデータをインポートする

        Excel ファイルからデータをインポートするには、pd.read_excel()関数を使用できます。data.xlsx次のデータを含む、という名前の Excel ファイルがあるとします。

姓名    年龄
Alice  25
Bob    30
Charlie 35
David  40

 データのインポート例:

import pandas as pd

# 从Excel文件导入数据
df = pd.read_excel('data.xlsx')

# 输出DataFrame
print(df)

3.3 SQL データベースからデータをインポートする

        SQL データベースからデータをインポートするには、pd.read_sql()関数を使用できます。まず、適切なデータベース ドライバー ( など) をインストールし、データベース接続を確立する必要がありpymysqlますsqlite3

データのインポート例 (SQLite データベースを使用):

import pandas as pd
import sqlite3

# 建立SQLite数据库连接
conn = sqlite3.connect('mydatabase.db')

# 从数据库导入数据
query = "SELECT * FROM mytable"
df = pd.read_sql(query, conn)

# 关闭数据库连接
conn.close()

# 输出DataFrame
print(df)

 3.4 異なる形式のファイルへのデータの保存

DataFrame からのデータをさまざまな形式でファイルに保存するには、保存するファイルの種類に応じて、 、、などto_のさまざまな関数        を使用できます。to_csv()to_excel()to_sql()

3.4.1 CSV ファイルへのデータの保存例:

import pandas as pd

# 创建一个DataFrame
data = {'姓名': ['Alice', 'Bob', 'Charlie', 'David'],
        '年龄': [25, 30, 35, 40]}
df = pd.DataFrame(data)

# 将数据保存到CSV文件
df.to_csv('output.csv', index=False)

3.4.2 データを Excel ファイルに保存する例:

import pandas as pd

# 创建一个DataFrame
data = {'姓名': ['Alice', 'Bob', 'Charlie', 'David'],
        '年龄': [25, 30, 35, 40]}
df = pd.DataFrame(data)

# 将数据保存到Excel文件
df.to_excel('output.xlsx', index=False)

3.4.3 SQL データベースへのデータの保存例 (SQLite データベースを使用):

import pandas as pd
import sqlite3

# 创建一个DataFrame
data = {'姓名': ['Alice', 'Bob', 'Charlie', 'David'],
        '年龄': [25, 30, 35, 40]}
df = pd.DataFrame(data)

# 建立SQLite数据库连接
conn = sqlite3.connect('mydatabase.db')

# 将数据保存到数据库中的新表格
df.to_sql('mytable', conn, if_exists='replace', index=False)

# 关闭数据库连接
conn.close()

        上の例では、最初に DataFrame を作成し、次にsqlite3モジュールを使用してmydatabase.dbSQLite データベース ファイルへの接続を確立しました。次に、to_sql()関数を使用して、DataFrame のデータをmytableという名前の新しいテーブルに保存します。このパラメータは、if_exists='replace'テーブルがすでに存在する場合は置き換えられることを示します。'append'必要に応じて、などの他のオプションを選択できます。

        最後に、データベース接続を閉じて、データがデータベースに正常に保存されたことを確認します。

        特定のニーズに合わせて、必要に応じてデータ、テーブル名、およびその他の関連パラメーターを変更できます。

 

おすすめ

転載: blog.csdn.net/qq_35831906/article/details/132700337