python将元组列表分成确定大小的间隔

标签 python tuples pandas intervals

我的文件中有 x 值和相应的计数。我将其读为以下形式的元组列表

dat = [(0.02, 1), 
(0.0211, 1), 
(0.021, 1), 
(0.023, 1), 
(0.0251, 1), 
(0.12, 2), 
(0.141, 1), 
(0.14, 3), 
(0.171, 1), 
(0.462, 9),
(0.467, 10),
(0.478, 15), 
(0.804, 20), 
(0.815, 31), 
(0.815, 24),
(2.72, 164), 
(2.78, 147), 
(2.8, 128),
(5.78, 6), 
(5.83, 1), 
(5.8603, 1),
(5.94, 17), 
(8.63, 3), 
(8.87, 5),  
(18.601, 1), 
(19.0, 7), 
(21.0, 2), 
(22.0, 4)]

如何将这些转换为等间隔计数。例如,增量为 0.2 的间隔。

x    count
0    0
0.5  12
1.0  75
1.5  0
2.0  0
2.5  0
3.0  439
... 

最佳答案

使用 pandas 的方法:

In [74]: df = pd.DataFrame.from_records(dat).set_index(0)

In [75]: counts = df.groupby(lambda x: floor(x / 0.5) * 0.5).count()

In [76]: counts
Out[76]: 
       1
0.0   12
0.5    3
2.5    3
5.5    4
8.5    2
18.5   1
19.0   1
21.0   1
22.0   1

您可以用零计数填充间隔:

In [77]: counts.reindex(np.arange(0, 22, 0.5)).fillna(0)
Out[73]: 
       1
0.0   12
0.5    3
1.0    0
1.5    0
2.0    0
2.5    3
3.0    0
3.5    0
4.0    0

etc ...

关于python将元组列表分成确定大小的间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13517281/

相关文章:

python - 从包含映射到值的索引的字典中创建 Pandas 数据框

python - 具有线性回归模型的 fillna 从数据框 pandas 中的两列构建

python - 为什么以下简单的并行化代码比 Python 中的简单循环慢得多?

python - 捕获我无法控制的 subprocess.call 的输出

python - 从元组创建命名元组?

python - 在 Python 和 Oracle 11g 中通过 cur.fetchall() 下载数组

python - 为什么测试 `NaN == NaN` 不适用于从 pandas dataFrame 中删除?

python - 使用python从xml文件中删除两个字符串之间的所有行

python - PYmssql python连接字符串

python - 更新python中多个键的值