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

如何将多个子DataFrame与主pandas DataFrame合并并导出CSV?

实现步骤与代码

核心思路

将所有子DataFrame存入字典(键为Title名称,值为对应子DataFrame),遍历主DataFrame的每一行,根据Title匹配字典中的子DataFrame,同步年份列的数值到主DataFrame,最后导出为CSV文件。

示例代码

import pandas as pd

# ---------------------- 1. 替换为你的真实数据 ----------------------
# 主DataFrame:包含Title、URL和2015-2024年份列(初始为NaN)
main_df = pd.DataFrame({
    "Title": ["Python入门", "数据分析实战", "机器学习进阶"],
    "URL": ["https://example.com/python", "https://example.com/data", "https://example.com/ml"],
    "2015": [pd.NA, pd.NA, pd.NA],
    "2016": [pd.NA, pd.NA, pd.NA],
    "2017": [pd.NA, pd.NA, pd.NA],
    "2018": [pd.NA, pd.NA, pd.NA],
    "2019": [pd.NA, pd.NA, pd.NA],
    "2020": [pd.NA, pd.NA, pd.NA],
    "2021": [pd.NA, pd.NA, pd.NA],
    "2022": [pd.NA, pd.NA, pd.NA],
    "2023": [pd.NA, pd.NA, pd.NA],
    "2024": [pd.NA, pd.NA, pd.NA]
})

# 子DataFrame:以Title命名,存入字典统一管理
sub_dfs = {
    "Python入门": pd.DataFrame({
        "2015": [100], "2016": [120], "2017": [150], "2018": [180],
        "2019": [200], "2020": [220], "2021": [250], "2022": [280],
        "2023": [300], "2024": [320]
    }),
    "数据分析实战": pd.DataFrame({
        "2015": [80], "2016": [90], "2017": [110], "2018": [130],
        "2019": [140], "2020": [160], "2021": [170], "2022": [190],
        "2023": [210], "2024": [230]
    })
}

# ---------------------- 2. 匹配子DataFrame到主DataFrame ----------------------
year_cols = [str(year) for year in range(2015, 2025)]

for idx, row in main_df.iterrows():
    title = row["Title"]
    if title in sub_dfs:
        sub_df = sub_dfs[title]
        main_df.loc[idx, year_cols] = sub_df.iloc[0][year_cols].values

# ---------------------- 3. 导出CSV ----------------------
main_df.to_csv("merged_data.csv", index=False, encoding="utf-8-sig")

关键说明

  • 子DF管理:用字典存储子DataFrame,比依赖全局变量更安全,避免因变量名拼写错误出问题。
  • 列匹配:通过year_cols统一指定年份列,确保同步的列完全对应,不会遗漏。
  • 容错处理:主DF中无对应子DF的Title,年份列会保留初始NaN,不会触发报错。

内容的提问来源于stack exchange,提问作者홍현기

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:01:06