この記事では、PythonのPandasライブラリを使ったデータ分析でよく使われるメソッドを包括的に紹介しています。ファイル読み書き、データ選択、計算、欠損値処理などが含まれ、様々な機能を示す実践的な例とコードスニペットを提供しています。
主要ポイント
ユニークな洞察
実用的な応用
主要トピック
重要な洞察
学習成果
• 主要ポイント
• ユニークな洞察
• 実用的な応用
• 主要トピック
1
PandasにおけるファイルI/O操作
2
データ選択とフィルタリングテクニック
3
統計計算とデータ集計
• 重要な洞察
• 学習成果
| 例 | チュートリアル | コードサンプル | ビジュアル |
| 基礎 | 高度なコンテンツ | 実践的なヒント | ベストプラクティス |
“ データ分析のためのPandas入門
Pandasは、データ操作と分析のための強力なPythonライブラリです。DataFrameやSeriesといったデータ構造を提供し、構造化データを簡単に扱えます。この記事では、データの読み込みから複雑な計算の実行まで、データ分析に不可欠なPandasのメソッドを網羅的に解説します。
“ Pandasでのデータの読み書き
Pandasは、さまざまなファイル形式からのデータの読み書きをサポートしています。一般的なメソッドを以下に示します:
* `read_csv()`: CSVファイルからデータを読み込みます。
* `to_csv()`: データをCSVファイルに書き込みます。
* `read_excel()`: Excelファイルからデータを読み込みます。
* `to_excel()`: データをExcelファイルに書き込みます。
* `read_sql()`: SQLデータベースからデータを読み込みます。
* `to_sql()`: データをSQLデータベースに書き込みます。
例:
```python
import pandas as pd
df = pd.read_csv('data.csv')
df.to_csv('output.csv', index=False)
```
“ Pandasでのデータの選択とフィルタリング
Pandasは、DataFrame内のデータを選択およびフィルタリングするためのいくつかの方法を提供します:
* `[]`: 名前で列を選択したり、インデックスで行を選択したりします。
* `loc[]`: ラベルでデータを選択します。
* `iloc[]`: 整数位置でデータを選択します。
例:
```python
# 列 'A' を選択
df['A']
# 0行目から3行目までを選択
df[0:3]
# 列 'A' が 0 より大きい行を選択
df[df['A'] > 0]
# loc を使用して特定の行と列を選択
df.loc[df['Age'].isnull(), 'BB']
# iloc を使用して特定の行と列を選択
df.iloc[3:5, 0:2]
```
“ データの計算と要約
Pandasは、データの計算と要約のための多数の関数を提供しています:
* `value_counts()`: Series内のユニークな値の出現回数をカウントします。
* `median()`: Seriesの中央値を計算します。
* `mean()`: SeriesまたはDataFrameの平均値を計算します。
* `std()`: 標準偏差を計算します。
* `describe()`: 要約統計量を生成します。
* `sum()`: 値の合計を計算します。
* `count()`: 非NA値の数をカウントします。
例:
```python
# 列 'Category' のユニークな値の数をカウント
df['Category'].value_counts()
# 列 'Price' の平均値を計算
df['Price'].mean()
# DataFrame の要約統計量を生成
df.describe()
```
“ 欠損データの処理
Pandasは、欠損データを処理するためのメソッドを提供しています:
* `isnull()`: 欠損値を検出します。
* `notnull()`: 非欠損値を検出します。
* `dropna()`: 欠損値を含む行または列を削除します。
* `fillna()`: 指定された値またはメソッドで欠損値を埋めます。
例:
```python
# 欠損値の確認
df.isnull().sum()
# 欠損値を 0 で埋める
df.fillna(0)
# 欠損値を列の平均値で埋める
df['Age'].fillna(df['Age'].mean(), inplace=True)
```
“ データ操作テクニック
Pandasは強力なデータ操作テクニックを提供します:
* `groupby()`: 1つ以上の列に基づいてデータをグループ化します。
* `pivot_table()`: DataFrameからピボットテーブルを作成します。
* `apply()`: DataFrameの軸に沿って関数を適用します。
* `merge()`: 共通の列に基づいて2つのDataFrameをマージします。
* `concat()`: DataFrameを連結します。
例:
```python
# 'Category' でデータをグループ化し、'Price' の平均値を計算
df.groupby('Category')['Price'].mean()
# 各行に a 関数を適用
def calculate_discount(row):
return row['Price'] * 0.9
df['Discounted_Price'] = df.apply(calculate_discount, axis=1)
```
“ DataFrameのマージと結合
Pandasは、SQLのJOINに似たDataFrameのマージと結合をサポートしています:
* `merge()`: 共通の列に基づいて2つのDataFrameをマージします。
* `join()`: インデックスに基づいて2つのDataFrameを結合します。
* `concat()`: 行または列に沿ってDataFrameを連結します。
例:
```python
# 'ID' 列に基づいて2つのDataFrameをマージ
merged_df = pd.merge(df1, df2, on='ID', how='inner')
# 2つのDataFrameを行方向に連結
concatenated_df = pd.concat([df1, df2])
```
“ データ関係の分析
Pandasは、データ間の関係を分析することを可能にします:
* `corr()`: 列間の相関を計算します。
* `crosstab()`: 2つ以上の要因のクロス集計表を計算します。
例:
```python
# 'Age' と 'Salary' の間の相関を計算
df[['Age', 'Salary']].corr()
# 'Gender' と 'Category' のクロス集計表を作成
pd.crosstab(df['Gender'], df['Category'])
```
“ データ変換
Pandasは、データを変換するためのメソッドを提供します:
* `cut()`: 値を離散的な区間にビン分けします。
* `qcut()`: 分位数ベースの離散化関数です。
* `get_dummies()`: カテゴリ変数をダミー/インジケータ変数に変換します。
例:
```python
# 'Age' を年齢グループにビン分け
df['Age_Group'] = pd.cut(df['Age'], bins=[0, 18, 35, 60, 100], labels=['Child', 'Young Adult', 'Adult', 'Senior'])
# 'Gender' をダミー変数に変換
gender_dummies = pd.get_dummies(df['Gender'])
```
“ 結論
Pandasは、Pythonにおけるデータ分析に不可欠なツールです。この記事では、データの読み書き、選択、計算、欠損データの処理、操作、マージ、変換のための基本的なメソッドを網羅しました。これらのテクニックを習得することで、データを効率的に分析し、洞察を得ることができます。
元のリンク: https://developer.aliyun.com/article/423072
コメント(0)