Хватит падающей матрицей сбрасывать ряды NaN

Я хотел бы использовать Пэтси dmatrix функция для генерации проектной матрицы, в которой сохраняются строки со значениями NaN. Например, следующий код вернет матрицу дизайна с четырьмя строками, чего мы обычно хотим. Однако в этом случае я хотел бы dmatrix вернуть матрицу с пятью строками, где в первой строке будет значение NaN.

import numpy as np
import pandas as pd
from patsy import dmatrix

df = pd.DataFrame({'x1': np.arange(5), 'x2': np.arange(5)})
dmatrix("~x1+x2.diff()", df)

Кроме того, я бы согласился на ответ, который позволяет мне получить номера строк, которые были отброшены / сохранены. В приведенном выше примере строка 1 - это строка, которая была удалена, а строки 2-5 были сохранены.

1 ответ

Решение

Пытаться:

dmatrix (..., NA_action = patsy.NAAction (NA_types = []))

Это говорит патси не рассматривать NaN как указание отсутствующего значения, поэтому оно будет пропущено. Документы находятся здесь: https://patsy.readthedocs.io/en/latest/API-reference.html

Кроме того, я бы согласился на ответ, который позволяет мне получить номера строк, которые были отброшены / сохранены.

Если вы используете return_type="dataframe"затем patsy вернет pandas DataFrame, содержащий вашу матрицу проектирования, а индекс этого DataFrame будет соответствовать строкам в исходном вводе, так что вы сможете увидеть, какие строки были сохранены или удалены.

Другие вопросы по тегам