如何在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
相关产品推荐
相关产品推荐

