Python学習メモ 58日目 (Pandasの共通関数)

パンダの共通機能

Pandas で一般的に使用されるいくつかの関数とその使用例を以下に示します。

読み取りデータ

関数 説明する
pd.read_csv(ファイル名) CSV ファイルを読み取ります。
pd.read_excel(ファイル名) Excel ファイルを読み取ります。
pd.read_sql(クエリ、接続オブジェクト) SQL データベースからデータを読み取ります。
pd.read_json(json_string) JSON 文字列からデータを読み取ります。
pd.read_html(url) HTML ページからデータを読み取ります。

次に、各機能の使い方を説明します。

# 实例 1
import pandas as pd

# 从 CSV 文件中读取数据
df = pd.read_csv('data.csv')

# 从 Excel 文件中读取数据
df = pd.read_excel('data.xlsx')

# 从 SQL 数据库中读取数据
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql('SELECT * FROM table_name', conn)

# 从 JSON 字符串中读取数据
json_string = '{"name": "John", "age": 30, "city": "New York"}'
df = pd.read_json(json_string)

# 从 HTML 页面中读取数据
url = 'https://www.runoob.com'
dfs = pd.read_html(url)
df = dfs[0] # 选择第一个数据框

データを表示する

関数 説明する
df.ヘッド(n) データの最初の n 行を表示します。
df.tail(n) データの最後の n 行を表示します。
df.info() 列名、データ型、欠損値などを含むデータ情報を表示します。
df.describe() 平均、分散、最大値、最小値などのデータの基本的な統計情報を表示します。
DF.シェイプ データの行数と列数を表示します。

次に、各機能の使い方を説明します。

# 实例 2
# 显示前五行数据
df.head()

# 显示后五行数据
df.tail()

# 显示数据信息
df.info()

# 显示基本统计信息
df.describe()

# 显示数据的行数和列数
df.shape
# 实例 3
import pandas as pd

data = [
    {
    
    "name": "Google", "likes": 25, "url": "https://www.google.com"},
    {
    
    "name": "Runoob", "likes": 30, "url": "https://www.runoob.com"},
    {
    
    "name": "Taobao", "likes": 35, "url": "https://www.taobao.com"}
]

df = pd.DataFrame(data)
# 显示前两行数据
print(df.head(2))
# 显示前最后一行数据
print(df.tail(1))

データクリーニング

関数 説明する
df.dropna() 欠損値を含む行または列を削除します。
df.fillna(値) 欠損値を指定された値に置き換えます。
df.replace(古い値, 新しい値) 指定された値を新しい値に置き換えます。
df.duplicated() 重複データがないか確認します。
df.drop_duplicates() 重複したデータを削除します。

次に、各機能の使い方を説明します。

# 实例 4
# 删除包含缺失值的行或列
df.dropna()

# 将缺失值替换为指定的值
df.fillna(0)

# 将指定值替换为新值
df.replace('old_value', 'new_value')

# 检查是否有重复的数据
df.duplicated()

# 删除重复的数据
df.drop_duplicates()

データの選択とスライス

関数 説明する
df[列名] 指定された列を選択します。
df.loc[行インデックス、列名] タグでデータを選択します。
df.iloc[行インデックス、列インデックス] 場所ごとにデータを選択します。
df.ix[行インデックス、列名] ラベルまたは場所によってデータを選択します。
df.filter(items=[列名1, 列名2]) 指定された列を選択します。
df.filter(regex='regex') 列名が正規表現と一致する列を選択します。
df.サンプル(n) n 行のデータをランダムに選択します。

次に、各機能の使い方を説明します。

# 实例 5
# 选择指定的列
df['column_name']

# 通过标签选择数据
df.loc[row_index, column_name]

# 通过位置选择数据
df.iloc[row_index, column_index]

# 通过标签或位置选择数据
df.ix[row_index, column_name]

# 选择指定的列
df.filter(items=['column_name1', 'column_name2'])

# 选择列名匹配正则表达式的列
df.filter(regex='regex')

# 随机选择 n 行数据
df.sample(n=5)

データの並べ替え

関数 説明する
df.sort_values(列名) 指定された列の値で並べ替えます。
df.sort_values([列名1, 列名2], ascending=[True, False]) 複数の列の値で並べ替えます。
df.sort_index() インデックス順に並べ替えます。

次に、各機能の使い方を説明します。

# 实例 6
# 按照指定列的值排序
df.sort_values('column_name')

# 按照多个列的值排序
df.sort_values(['column_name1', 'column_name2'], ascending=[True, False])

# 按照索引排序
df.sort_index()
数据分组和聚合
函数	说明
df.groupby(column_name)	按照指定列进行分组;
df.aggregate(function_name)	对分组后的数据进行聚合操作;
df.pivot_table(values, index, columns, aggfunc)	生成透视表。
# 实例 7
# 按照指定列进行分组
df.groupby('column_name')

# 对分组后的数据进行聚合操作
df.aggregate('function_name')

# 生成透视表
df.pivot_table(values='value', index='index_column', columns='column_name', aggfunc='function_name')

データのマージ

関数 説明する
pd.concat([df1, df2]) 行または列に従って複数のデータ フレームを結合します。
pd.merge(df1, df2, on=列名) 指定した列ごとに 2 つのデータ フレームを結合します。

次に、各機能の使い方を説明します。

# 实例 8
# 将多个数据框按照行或列进行合并
df = pd.concat([df1, df2])

# 按照指定列将两个数据框进行合并
df = pd.merge(df1, df2, on='column_name')

データの選択とフィルタリング

関数 説明する
df.loc[行インデクサー、列インデクサー] ラベルによって行と列を選択します。
df.iloc[行インデクサー、列インデクサー] 行と列を位置で選択します。
df[df['列名'] > 値] 条件を満たす列の行を選択します。
df.query('列名 > 値') 文字列式を使用して、条件を満たす列内の行を選択します。

統計と説明

関数 説明する
df.describe() 平均、標準偏差、最小値、最大値などの基本的な統計を計算します。
df.mean() 各列の平均を計算します。
df.median() 各列の中央値を計算します。
df.mode() 各列のモードを計算します。
df.count() 各列の非欠損値の数を数えます。

次の JSON データがあるとします。データは data.json ファイルに保存されます:
data.json ファイル

[
  {
    
    
    "name": "Alice",
    "age": 25,
    "gender": "female",
    "score": 80
  },
  {
    
    
    "name": "Bob",
    "age": null,
    "gender": "male",
    "score": 90
  },
  {
    
    
    "name": "Charlie",
    "age": 30,
    "gender": "male",
    "score": null
  },
  {
    
    
    "name": "David",
    "age": 35,
    "gender": "male",
    "score": 70
  }
]

次のように、Pandas を使用して JSON データを読み取り、データのクリーニングと処理、データの選択とフィルタリング、データの統計と説明などの操作を実行できます。

# 实例 9
import pandas as pd

# 读取 JSON 数据
df = pd.read_json('data.json')

# 删除缺失值
df = df.dropna()

# 用指定的值填充缺失值
df = df.fillna({
    
    'age': 0, 'score': 0})

# 重命名列名
df = df.rename(columns={
    
    'name': '姓名', 'age': '年龄', 'gender': '性别', 'score': '成绩'})

# 按成绩排序
df = df.sort_values(by='成绩', ascending=False)

# 按性别分组并计算平均年龄和成绩
grouped = df.groupby('性别').agg({
    
    '年龄': 'mean', '成绩': 'mean'})

# 选择成绩大于等于90的行,并只保留姓名和成绩两列
df = df.loc[df['成绩'] >= 90, ['姓名', '成绩']]

# 计算每列的基本统计信息
stats = df.describe()

# 计算每列的平均值
mean = df.mean()

# 计算每列的中位数
median = df.median()

# 计算每列的众数
mode = df.mode()

# 计算每列非缺失值的数量
count = df.count()

追記

今日学んだのはPython Pandasの共通機能です。今日の学習内容をまとめると、

  1. パンダの共通機能
  2. 読み取りデータ
  3. データを表示する
  4. データクリーニング
  5. データの選択とスライス
  6. データの並べ替え
  7. データのマージ
  8. データの選択とフィルタリング
  9. 統計と説明

おすすめ

転載: blog.csdn.net/qq_54129105/article/details/132262570