如何通过循环扩展Pandas DataFrame?附数据转换示例
Pandas循环扩展DataFrame的实现方法
首先构造你的原始DataFrame:
import pandas as pd df = pd.DataFrame({'A': ['f', 'g'], 'B': ['1', '2']})
要通过循环实现目标扩展,你可以按以下步骤操作:
- 初始化一个空列表,用来存储扩展后的每一行数据
- 遍历原始DataFrame的每一行,为每行生成两个新行(分别给
B列追加a和b) - 将收集到的所有行转换为新的DataFrame,并重置索引
具体代码如下:
# 初始化空列表存储扩展行 expanded_rows = [] # 遍历原始DataFrame的每一行 for _, row in df.iterrows(): # 生成带'a'的行 row_a = row.copy() row_a['B'] = f"{row_a['B']}a" expanded_rows.append(row_a) # 生成带'b'的行 row_b = row.copy() row_b['B'] = f"{row_b['B']}b" expanded_rows.append(row_b) # 转换为新DataFrame并重置索引 expanded_df = pd.DataFrame(expanded_rows).reset_index(drop=True) print(expanded_df)
运行后会输出你需要的结果:
A B 0 f 1a 1 f 1b 2 g 2a 3 g 2b
注:虽然Pandas更推荐使用向量化操作(比如
explode或者merge)来提升效率,但如果明确要求用循环实现,上述方法完全满足需求。
内容的提问来源于stack exchange,提问作者van dam
相关产品推荐
相关产品推荐

