DataFrame.reindex() / Series.reindex()
Метод reindex() создаёт новый объект с другим набором меток индекса (и/или столбцов). Отсутствующие метки заполняются NaN или значением из fill_value.
Сигнатура
DataFrame.reindex(labels=None, index=None, columns=None, axis=None,
method=None, copy=True, fill_value=NaN, limit=None,
tolerance=None)
Параметры
index/columns— новые метки строк/столбцов.method— заполнение пропусков:"ffill","bfill","nearest".fill_value— значение для отсутствующих ячеек.limit— максимум подряд заполняемых ячеек.
Возвращаемое значение
Новый DataFrame / Series.
Примеры
Пример 1. Новый порядок строк
import pandas as pd
s = pd.Series([22, 23, 24], index=["A", "B", "C"])
print(s.reindex(["C", "B", "A"]))
C 24
B 23
A 22
dtype: int64
Пример 2. Появление NaN
import pandas as pd
s = pd.Series([22, 23], index=["A", "B"])
print(s.reindex(["A", "B", "C"]))
A 22.0
B 23.0
C NaN
dtype: float64
Пример 3. fill_value=0
import pandas as pd
s = pd.Series([22, 23], index=["A", "B"])
print(s.reindex(["A", "B", "C"], fill_value=0))
A 22
B 23
C 0
dtype: int64
Пример 4. ffill для временного ряда
import pandas as pd
s = pd.Series([10, 20], index=[0, 2])
print(s.reindex(range(5), method="ffill"))
0 10
1 10
2 20
3 20
4 20
dtype: int64
Пример 5. Переупорядочивание столбцов DataFrame
import pandas as pd
df = pd.DataFrame({"a": [1, 2], "b": [3, 4], "c": [5, 6]})
print(df.reindex(columns=["c", "a", "b"]))
c a b
0 5 1 3
1 6 2 4
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.