擅长:python、mysql、java
<p>如注释中所述,不能从字符串列生成distplot。如果要忽略字符串列,可以在遍历列时检查每一列,如下所示:</p>
<pre><code>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.
</code></pre>
<p>我根据您的需要运行了一个简单的测试,它在我的机器上运行良好。代码如下:</p>
<pre><code>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()
</code></pre>
<p>在你的情况下,是这样的:</p>
<pre><code>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()
</code></pre>