You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Pandas中将频数表转换为原始数据

解决频数表转原始观测值Series的问题

嘿,我明白你要做的事——把频数表格式的DataFrame展开成包含原始重复观测值的Series对吧?这在数据处理里挺常见的,用Pandas就能轻松搞定,给你两种简单的方法:

方法一:用Series.repeat()(最简洁高效)

首先我们先构造你描述的示例DataFrame:

import pandas as pd

# 模拟你的输入数据
df = pd.DataFrame({
    'obs': [-0.3, 0.9, 1.4],
    'count': [3, 2, 5]
})

接下来直接使用repeat()方法,让每个obs值重复对应的count次数:

# 生成目标Series
expanded_series = df['obs'].repeat(df['count']).reset_index(drop=True)

运行后,expanded_series就是你想要的结果:

0   -0.3
1   -0.3
2   -0.3
3    0.9
4    0.9
5    1.4
6    1.4
7    1.4
8    1.4
9    1.4
Name: obs, dtype: float64

方法二:用DataFrame索引重复(更直观理解逻辑)

如果你想更清晰地看到索引的变化过程,也可以通过重复DataFrame的索引来实现:

expanded_series = df.loc[df.index.repeat(df['count']), 'obs'].reset_index(drop=True)

这个方法的逻辑是先把每个行索引重复count次,再通过索引取出对应的obs值,最后重置索引去掉原有的重复索引。

两种方法都能达到你想要的效果,第一种更简洁高效,推荐优先使用~

内容的提问来源于stack exchange,提问作者Martan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:17:16