我试图为我的数据框中的所有列绘制直方图。
我导入了pyspark
和matplotlib
。
df是我的数据帧变量。
pltmatplotlib.pyplot
变量
我能够为单个列绘制直方图,如下所示:
bins, counts = df_maverick.select('ColumnName').rdd.flatMap(lambda x: x).histogram(20)
plt.hist(bins[:-1], bins=bins, weights=counts)
但当我试图为所有变量绘制它时,我遇到了问题。这是到目前为止我的for循环:
for x in range(0, len(df.columns)):
bins, counts = df.select(x).rdd.flatMap(lambda x: x).histogram(20)
plt.hist(bins[:-1], bins=bins, weights=counts)
我该怎么做?提前谢谢。
最佳答案
问题是您的for
循环:
for x in range(0, len(df.columns)):
将在一系列整数上迭代。然后,当您尝试通过以下方式访问列时:
df.select(x)
您将得到一个错误,因为
x
不是有效的列标识符。相反,请将循环更改为:
for x in df.columns:
剩下的代码就可以工作了。
关于python - 为数据框中的所有列绘制直方图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49780491/