我想使用patsy的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则保留。
发布于 2018-08-01 19:43:52
尝试:
(.,NA_action=patsy.NAAction(NA_types=[]))
这告诉patsy不要将NaN看作是一个缺失的值,因此它将被传递。文档在这里:https://patsy.readthedocs.io/en/latest/API-reference.html#missing-values
或者,我将满足于一个允许我检索被删除/保留的行号的答案。
如果您使用return_type="dataframe",那么patsy将返回包含您的设计矩阵的熊猫DataFrame,该DataFrame上的索引将对应于原始输入中的行,因此您可以看到哪些行被保留或删除。
https://stackoverflow.com/questions/51640071
复制相似问题