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

如何在Python中重构现有DataFrame格式?

解决方案

首先构造你的原始DataFrame:

import pandas as pd

df = pd.DataFrame({
    "地理区域": ["A", "B", "C"],
    "deep indoor区域面积": [1, 7, 13],
    "deep indoor人口": [2, 8, 14],
    "indoor区域面积": [3, 9, 15],
    "indoor人口": [4, 10, 16],
    "incar区域面积": [5, 11, 17],
    "incar人口": [6, 12, 18]
})

方法一:手动拆分每个类型

直接提取对应列并重命名:

1. 生成deep indoor的DataFrame

df_deep_indoor = df[["地理区域", "deep indoor区域面积", "deep indoor人口"]].rename(
    columns={
        "地理区域": "deep indoor",
        "deep indoor区域面积": "区域面积",
        "deep indoor人口": "人口"
    }
)

2. 生成indoor的DataFrame

df_indoor = df[["地理区域", "indoor区域面积", "indoor人口"]].rename(
    columns={
        "地理区域": "indoor",
        "indoor区域面积": "区域面积",
        "indoor人口": "人口"
    }
)

3. 生成incar的DataFrame

df_incar = df[["地理区域", "incar区域面积", "incar人口"]].rename(
    columns={
        "地理区域": "incar",
        "incar区域面积": "区域面积",
        "incar人口": "人口"
    }
)

方法二:通用循环拆分(更简洁)

如果后续有更多类似类型,用循环可减少重复代码:

# 定义需要拆分的类型列表
types = ["deep indoor", "indoor", "incar"]
# 用字典存储拆分后的DataFrame
dfs = {}

for t in types:
    # 提取对应列
    cols = ["地理区域", f"{t}区域面积", f"{t}人口"]
    # 重命名列
    renamed_cols = {
        "地理区域": t,
        f"{t}区域面积": "区域面积",
        f"{t}人口": "人口"
    }
    dfs[t] = df[cols].rename(columns=renamed_cols)

# 调用时直接取字典中的值:dfs["deep indoor"]、dfs["indoor"]、dfs["incar"]

两种方法都能得到你需要的三个DataFrame,方法二更适配类型较多的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:05:50