Pandas如何实现同一列元素重复多次,可否通过lambda实现
Pandas指定列元素重复展开实现方案
可以通过lambda函数实现该需求,具体实现如下:
首先构造测试用的DataFrame:
import pandas as pd # 示例原始数据,对应列内容为[A,B,C] df = pd.DataFrame({ 'target_col': ['A', 'B', 'C'] })
基于lambda的实现方式
通过apply调用lambda函数生成重复列表,再用explode展开列表得到每个元素重复3次的单列数据:
# 处理后得到元素依次重复3次的新DataFrame result_df = df['target_col'].apply(lambda x: [x]*3).explode().to_frame(name='target_col')
运行后result_df的target_col输出结果为:
0 A 0 A 0 A 1 B 1 B 1 B 2 C 2 C 2 C
如果需要重置索引可以在末尾追加.reset_index(drop=True)。
补充:更高性能的原生实现方案
如果处理的数据量较大,更推荐直接使用Pandas自带的repeat方法,无需调用lambda,执行效率更高:
result_df = df.loc[df.index.repeat(3)].reset_index(drop=True)
内容的提问来源于stack exchange,提问作者Utsav Talwar
相关产品推荐
相关产品推荐

