如评论中所述,您无法从字符串列创建distplot。如果要忽略字符串列,您可以在迭代它们时检查每个列,如下所示:
for i in data.columns:
if(data[i].dtype == np.float64 or data[i].dtype == np.int64):
sns.distplot(data[i])
else:
//your code to handle strings.
我根据你的需求运行了一个简单的测试,在我的机器上运行良好。以下是代码:
import seaborn as sns
import matplotlib.pyplot as plt
a = [1,2,3,4]
c = [1,4,6,7,4,6,7,4,3,5,543,543,54,46,656,76,43,56]
d = [43,3,3,56,5,76,686,876,8768,78,77,98,79,8798,987,978,98]
sns.distplot(a)
e = [a,c,d]
for i, col in enumerate(e):
plt.figure(i)
sns.distplot(col)
plt.show()
在您的情况下,就像这样:
import matplotlib.pyplot as plt
for index, i in enumerate(data.columns):
if(data[i].dtype == np.float64 or data[i].dtype == np.int64):
plt.figure(index)
sns.distplot(data[i])
else:
//your code to handle strings.
plt.show()
字符串
格式的数据。 - zipanumeric_data = data._get_numeric_data()
的方法,并在numeric_data
上进行循环。 - zipa