指定patsy/statsmodels 'C'生成的类别名称格式

1 投票
2 回答
609 浏览
提问于 2025-04-17 22:32

默认情况下,Patsy 的 C 似乎会生成一些类别名称,这些名称的格式是

C(color, Treatment('White'))[T.Green]

至少在用在提供给 statsmodelsold 公式时是这样的。有没有办法指定 C 生成更简洁的类别名称,比如格式是

colorGreen

甚至可以简单到

Green

2 个回答

0

虽然来得有点晚,但对于2021年在找这个的人来说,下面的内容可能会有帮助。

如果你愿意花点时间处理一下数据,可以把statsmodel的Summary对象(在对一个已经训练好的模型调用summary()时返回的结果)拆开,转换成一个DataFrame,然后再进行格式化。

这个Summary对象有一个tables属性。第一个表是模型拟合的结果,第二个表是系数表。这些表都有一个as_html()的方法,你可以把它传给pandas的read_html()方法。

df = pd.read_html(your_fitted_model.summary().tables[1].as_html(), header=0)[0]

接下来,你可以通过常规的字符串和DataFrame方法去掉一些格式化的内容。

2

这个问题已经被公开讨论了。请在那边讨论其他的解决办法。

https://github.com/pydata/patsy/issues/19

撰写回答