我正在尝试绘制一个包含300万行的大型数据集的不错的直方图(我有2CPU / 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()
答案 0 :(得分:1)
这对您来说应该不是问题。我正在显示几秒钟以生成给定5000万行的图。我首先尝试了大熊猫历史。
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()