Pandas DataFrame DataFrame.reindex()関数

Minahil Noor 2023年1月30日
  1. pandas.DataFrame.reindex() の構文
  2. コード例:DataFrame.reindex()
  3. コード例:列を再インデックスする DataFrame.reindex()
  4. コード例:欠損値を fill_value で埋める DataFrame.reindex() メソッド
  5. コード例:method パラメータを使用して欠損値を埋めるための DataFrame.reindex()
Pandas DataFrame DataFrame.reindex()関数

Python Pandas DataFrame.reindex() 関数は、DataFrame のインデックスを変更します。指定された軸のインデックスを変更します。新しいインデックスには値が含まれていません。これらの値を入力するためのオプションのパラメーターを提供します。

pandas.DataFrame.reindex() の構文

DataFrame.dropna(
    labels, index, columns, axis, method, copy, level, fill_value, limit, tolerance
)

パラメーター

labels それは新しい配列の名前を含む配列のような構造です。
index, columns それは新しい配列の名前を含む配列のような構造です。キーワード index または columns を使用して指定する必要があります。
axis 整数または文字列です。行または列のいずれかでターゲット軸について通知します。0 または index および 1 または columns を指定できます。
method このパラメーターは、再インデックスされた DataFrame の欠損値を埋めるメソッドを指定します。
次の 4つの可能性があります: Nonebackfill / bfillpad / ffillnearest
これは、DataFrame または Series が増加または減少するインデックスのシーケンスを持っている場合にのみ適用されます。
copy ブール。デフォルトでは、True です。新しいオブジェクトを返します。
level 整数または名前です。渡されたマルチインデックスレベルのインデックス値と一致します。
fill_value スカラー値を持っています。欠損値を埋めるための値です。
limit 整数です。欠落している値を埋めながら、連続する要素の制限について通知します。
tolerance 完全に一致しない場合の、元のラベルと新しいラベルの違いを示します。

戻り値

変更されたインデックスを持つ DataFrame を返します。

コード例:DataFrame.reindex()

デフォルトでは、軸は 0、つまり行なので、行のインデックスが再作成されます。

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 75, 4: 95},
                    'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                    'Obtained Marks': {0: 56, 1: 75, 2: 82, 3: 64, 4: 67}})
print(dataframe)

デモ DataFrame は次のとおりです。

   Attendance    Name  Obtained Marks
0          60  Olivia              56
1         100    John              75
2          80   Laura              82
3          75     Ben              64
4          95   Kevin              67

Python のインデックスは 0 から始まります。DataFrame のインデックスを再作成し、新しいインデックスは 1 から始まります。

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)

dataframe1 = dataframe.reindex([1, 2, 3, 4, 5])
print(dataframe1)

出力:

   Attendance   Name  Obtained Marks
1       100.0   John            75.0
2        80.0  Laura            82.0
3        75.0    Ben            64.0
4        95.0  Kevin            67.0
5         NaN    NaN             NaN

ここで、5 は新しいインデックスです。したがって、新しいインデックスの値は NaN です。

コード例:列を再インデックスする DataFrame.reindex()

列のインデックスを再作成するには、2つの方法があります。1つは columns キーワードでラベルを指定する方法で、もう 1つは axis パラメータを使用する方法です。良いのは、columns キーワードでラベルを指定することです。

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)

dataframe1 = dataframe.reindex(columns=["Presents", "Name", "Marks"])

print(dataframe1)

出力:

   Presents    Name  Marks
0       NaN  Olivia    NaN
1       NaN    John    NaN
2       NaN   Laura    NaN
3       NaN     Ben    NaN
4       NaN   Kevin    NaN

古いインデックスには古い値が割り当てられます。新しいインデックスには NaN 値があります。

また、axis パラメータを使用して列のインデックスを再作成することもできます。

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)

dataframe1 = dataframe.reindex(["Presents", "Name", "Marks"], axis="columns")

print(dataframe1)

コード例:欠損値を fill_value で埋める DataFrame.reindex() メソッド

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.reindex([1, 2, 3, 4, 5], fill_value=0)
print(dataframe1)

出力:

   Attendance   Name  Obtained Marks
1         100   John              75
2          80  Laura              82
3          75    Ben              64
4          95  Kevin              67
5           0      0               0

欠損値は 0 で埋められます。

コード例:method パラメータを使用して欠損値を埋めるための DataFrame.reindex()

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: 100, 2: 80, 3: 75, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: 56, 1: 75, 2: 82, 3: 64, 4: 67},
    }
)
dataframe1 = dataframe.reindex([1, 2, 3, 4, 5], method="ffill")
print(dataframe1)

出力:

 Attendance   Name  Obtained Marks
1         100   John              75
2          80  Laura              82
3          75    Ben              64
4          95  Kevin              67
5          95  Kevin              67

メソッド ffill は、前方の欠損値を最後に利用可能な値で埋めました。

関連記事 - Pandas DataFrame