我正在尝试使用row作为Gender并将列设置为Self Employed来绘制贷款状态。
g=sns.FacetGrid(train,row='Gender',col='Self_Employed',size=2.2,aspect=1.6)
g.map(plt.hist,'Loan_Status')
g.add_legend()
plt.show()
错误是 - TypeError:无法连接'str'和'float'对象
答案 0 :(得分:0)
您遇到的问题是Loan_Status
至少包含一个字符串。
请参阅以下示例。
train = pd.DataFrame({'Gender':['Male','Female','Male','Female']*3,
'Self_Employed':['Yes','Yes','No']*4,'Somevalue':[1,2,3,4]*3, 'String':['yes','No','No']*4})
g=sns.FacetGrid(train,row='Gender',col='Self_Employed',size=2.2,aspect=1.6)
g.map(plt.hist,'Somevalue')
g.add_legend()
plt.show()
此图片中的结果。
然而,当我们尝试对仅由字符串组成的String
执行相同操作时。
g=sns.FacetGrid(train,row='Gender',col='Self_Employed',size=2.2,aspect=1.6)
g.map(plt.hist,'String')
g.add_legend()
plt.show()
我得到了同样的错误。
TypeError: unorderable types: str() < float()
要解决您的问题,您必须检查Loan_Status
列并将字符串(我认为是标签)编码为数字。您可以查看sklearn label encoder为您执行此操作。或者自己写一些代码来为你做这件事。