基于计数列扩展Pandas DataFrame行生成事件实例序列
解决方案
可以用Pandas的repeat方法快速实现这个需求,代码如下:
import pandas as pd # 初始化数据 data = {'Day': ['M', 'T', 'W', 'Th', 'F', 'Sa', 'Su'], 'Count': [1, 0, 3, 1, 2, 4, 2]} df = pd.DataFrame(data) # 生成重复后的结构 result = df['Day'].repeat(df['Count']).reset_index(drop=True).to_frame(name='Day') print(result)
代码说明:
df['Day'].repeat(df['Count']):将Day列的每个元素按照Count列对应的数值重复相应次数,Count为0的元素(比如示例中的'T')会自动被跳过。reset_index(drop=True):重置索引,生成连续的新索引,去掉原DataFrame的重复索引。to_frame(name='Day'):将Series转换为DataFrame,保持和期望输出一致的列名格式。
运行后输出结果和需求完全匹配:
Day 0 M 1 W 2 W 3 W 4 Th 5 F 6 F 7 Sa 8 Sa 9 Sa 10 Sa 11 Su 12 Su
内容的提问来源于stack exchange,提问作者Rory Majule
相关产品推荐
相关产品推荐

