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

如何基于索引合并两个DataFrame?按重复索引复制首表对应行

基于索引复制行并合并Pandas DataFrame的实现方法

需求说明

现有两个Pandas DataFrame:

  • 第一个DataFrame:共3414行,索引从0开始,包含Start_Year和End_Year两列
  • 第二个DataFrame:共31170行,索引从0开始且存在重复值,存储object类型的列表数据(示例列名为new_col)

需要基于索引合并二者,让第一个DataFrame的行根据第二个DataFrame对应索引的重复次数复制,最终生成包含两表数据的新DataFrame,示例格式如下:

Start_Year    End_Year        new_col
0      1500         1500        [KingdomofPoland, Georgia]
0      1500         1500        [GrandDuchyofLithuania, Georgia]
1      1500         1501        [NorthernYuanDynasty, Georgia]
2      1500         1700        [SpanishEmpire, ChechenRepublic]
2      1500         1700        [CaptaincyGeneralofChile, ChechenRepublic]
......
3411    2019        2019        [SyrianOpposition, SpanishEmpire]
3412    2019        2022        [UnitedStates, SpanishEmpire]
3412    2019        2022        [UnitedKingdom, SpanishEmpire]
3412    2019        2022        [SaudiArabia, SpanishEmpire]
.......

实现代码

1. 读取数据

import pandas as pd

# 替换为实际文件路径
df1 = pd.read_csv("path/to/your/first_dataframe.csv")
df2 = pd.read_csv("path/to/your/second_dataframe.csv")

2. 合并并复制行

利用Pandas的索引定位功能,直接根据第二个DataFrame的索引序列重复提取第一个DataFrame的对应行,再按列拼接:

# 按df2的索引重复提取df1的行,然后与df2拼接
merged_df = pd.concat([df1.loc[df2.index].reset_index(drop=True), df2.reset_index(drop=True)], axis=1)

验证结果

合并后的DataFrame行数应与第二个DataFrame一致(31170行),且每个原索引对应的Start_Year、End_Year值会重复对应次数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:06:22