如何将Pandas DataFrame的w列单词按对应n列数值重复生成新数据框
实现代码
核心用Pandas内置的repeat方法即可实现,完整代码如下:
import pandas as pd # 构造原始DataFrame df = pd.DataFrame({'w':['foo','bar'], 'n':[3,5]}) # 按n列数值重复对应行的w列值,重置索引为连续整数 res = df.loc[df.index.repeat(df['n']), 'w'].reset_index(drop=True) # 按要求格式打印 for i, v in res.items(): print(i, v)
逻辑说明
df.index.repeat(df['n'])会生成重复后的行索引序列:[0,0,0,1,1,1,1,1],正好匹配需要的重复次数- 用该索引提取w列数据后,调用
reset_index(drop=True)把索引重置为从0开始的连续序号,和需要的输出序号完全对应 - 运行后输出结果和示例完全一致:
0 foo 1 foo 2 foo 3 bar 4 bar 5 bar 6 bar 7 bar 8 bar
内容的提问来源于stack exchange,提问作者HappyPy
相关产品推荐
相关产品推荐

