【问题标题】:Plotting really slow on 300k row dataset在 300k 行数据集上绘制真的很慢
【发布时间】:2021-07-05 15:30:58
【问题描述】:

我正在对 32 万行、30 列的数据集进行 EDA。

我想显示变量的分布,所以我尝试了一些基本的东西,比如

`

for col in df.select_dtypes("object"):
    plt.figure()
    df[col].value_counts().plot.pie(autopct='%1.1f%%')
    plt.show()

`

我的 jupyter 单元现在已经运行了 10 分钟...... 300k “太多”了吗?使用 GPU 会有帮助吗?我注意到它在 Colab 上也很慢......

我也尝试过sns.pairplot(df),但在 20 分钟后取消了...

我做错了吗?

感谢你们的帮助

【问题讨论】:

  • 每列有多少个唯一值?您能否通过print(col) 确定是否有任何特定列是迭代时的瓶颈?
  • 300K 行并不算多。这完全取决于数据的分布方式。然而,在一个饼图中有 1000 个切片会很多。带有 30x30 子图的 seaborn pairplot 太多了。
  • 你是对的,有些列让它变慢了。我很愚蠢 .. 一个 320k+ URL 的馅饼只是......愚蠢

标签: python-3.x pandas matplotlib seaborn


【解决方案1】:

您可以先查看df[col].describe() 为每列提供的指标,而不是绘制值计数的饼图。它将为您的数据提供更快、更完整的概览。

然后,如果您想要一个可视化概览,当然这取决于您的数据和您想要理解的内容,但您会希望从以某种方式聚合数据开始的可视化开始。考虑直方图上的核密度估计,散点图上的六边形图。

我现在的两分钱,如果想到其他东西,或者如果你能提供更多关于你正在看什么以及你想用它做什么的细节,我会编辑。

【讨论】:

  • 先尝试清理数据不是更有用吗?因为 describe() 表有点大,我可以看到很多列都超过 90% Nan ..顺便说一句,我可以问一下,您认为 clomun 占 NaN 值的百分比是“无用的”吗?
猜你喜欢
  • 2020-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 2016-08-01
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
相关资源
最近更新 更多