【问题标题】:Seaborn histogram with bigdataSeaborn 直方图与大数据
【发布时间】:2018-12-04 06:35:51
【问题描述】:

我正在尝试绘制一个包含 300 万行的大数据集的漂亮直方图(我有 2 个 CPU/16GB RAM)。尽管我提供了垃圾箱,但我从来没有得到一个情节。有没有更有效的方法来绘制直方图?请参阅下面的代码。

df0 = dd.read_csv(filename, sep="|", header=None, dtype=np.str, error_bad_lines=False, usecols=col0, quoting=3, encoding='ISO-8859-1')
dfs = df0[df0['DocumentTypeStndCode']=='D'].compute()
dfs['Price'] = dfs[pd.to_numeric(dfs['Price'], errors='coerce').notnull()]

sns.distplot(dfs['Price'], bins=[0, 10000, 200000, 400000, 2000000], kde=False)
plt.show()

【问题讨论】:

    标签: python pandas plot seaborn


    【解决方案1】:

    这对您来说应该不是问题。我展示了几秒钟来生成给定 5000 万行的图。我先尝试了 pandas hist。

    import pandas as pd
    import numpy as np
    %matplotlib inline
    df = pd.DataFrame({
      'values': np.random.beta(0.5, 0.1, size=50000000)
    })
    hist = df.hist(bins=10)
    

    和seaborn一样

    import matplotlib.pyplot as plt
    import seaborn as sns
    %matplotlib inline
    
    sns.distplot(df['values'], bins=[0, .10000, .200000, .400000, 2.000000], kde=False)
    plt.show()
    

    【讨论】:

    • 是的,我看到你的例子,这不是一个包的问题..很奇怪,因为我将列中的所有数据都转换为数值。任何想法,什么会导致执行延迟?
    • 你是在 ipython notebook 中执行,还是普通的 python 执行?如果 %matplotlib inline 不存在,则它不会在笔记本中显示图表。除此之外,当我有多个图表时,我遇到了问题。如果它们在单个窗口中弹出,您有时需要关闭它们才能移至下一个窗口。
    • 实际上,我在普通的python环境中使用dask,我只是发现它以某种方式弄乱了我的列,也许这就是原因。无论如何,这不是情节引擎的问题。
    猜你喜欢
    • 2017-07-05
    • 2017-02-18
    • 2015-12-31
    • 2020-07-28
    • 2021-12-10
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多