我有一个庞大的大熊猫数据框(696,20531),我想在直方图中绘制所有的值。使用df.plot(kind='hist')
似乎需要永远。有更好的方法吗?
答案 0 :(得分:5)
使用DataFrame.stack()
:
import numpy as np
import pandas as pd
np.random.seed(0)
df = pd.DataFrame(np.random.randn(5, 10))
print(df.to_string())
0 1 2 3 4 5 6 7 8 9
0 -0.760559 0.317021 0.325524 -0.300139 0.800688 0.221835 -1.258592 0.333504 0.669925 1.413210
1 0.082853 0.041539 0.255321 -0.112667 -1.224011 -0.361301 -0.177064 0.880430 0.188540 -0.318600
2 -0.827121 0.261817 0.817216 -1.330318 -2.254830 0.447037 0.294458 0.672659 -1.242452 0.071862
3 1.173998 0.032700 -0.165357 0.572287 0.288606 0.261885 -0.699968 -2.864314 -0.616054 0.798000
4 2.134925 0.966877 -1.204055 0.547440 0.164349 0.704485 1.450768 -0.842088 0.195857 -0.448882
df.stack().hist()
答案 1 :(得分:0)
另一种方法是使用DataFrame.sample()-它从您的数据框中提供大小为random_state
的随机集(带有种子n
)。这样您就可以绘制数据(例如1000个点,具有可重复的随机性)的样本。
df.sample(n=1000,random_state=1).plot()