我正在使用以pandas系列表示的直方图,并表示从观察集实现的随机变量。我正在寻找一种有效的方法来存储和读取它们
柱状图的箱子是系列的索引。例如:
histogram1 :
(-1.3747106810983318, 3.529160051186781] 0.012520
(3.529160051186781, 8.433030783471894] 0.013830
(8.433030783471894, 13.336901515757006] 0.016495
(13.336901515757006, 18.24077224804212] 0.007194
(18.24077224804212, 23.144642980327234] 0.041667
(23.144642980327234, 28.048513712612344] 0.000000
我想将这些直方图中的几个存储在一个csv文件中(每一组随机变量一个文件,一个文件将存储约100个直方图),并在以后完全按照存储之前的方式读取它们(文件中的每个直方图作为一个序列,所有值作为浮点数)
我该怎么做?既然速度很重要,有没有比csv文件更有效的方法
因此,当一个变量的新实现出现时,我将从相应的文件中检索它的直方图,并评估它“落入”的bin。大概是这样的:
# Not very elegant
for bin in histogram1.index:
if 1.0232545 in bin:
print("It's in!")
print(histogram1.loc[bin])
谢谢
您在这里讨论的是两个不同的主题:
IntervalIndex
确定float
的bin李>第一部分很简单。在保存到csv(或者更确切地说)之前,我会使用pandas.concat()创建一个大框架
有关更多信息,请参见.to_parquet()、this answer和this benchmark
然后,在回读时,选择一个带有
或
第二部分已经得到答复。 简而言之,您需要通过以下方式展平IntervalIndex:
然后,您可以使用numpy.digitize找到您的值(或值列表)的bin:
编辑
刚刚发现this answer关于Indexing with an IntervalIndex,这也适用于:
相关问题 更多 >
编程相关推荐