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

如何将多列DataFrame拆分为以指定日期为索引的单个衍生DataFrame?

解决方案

步骤说明

  1. 预处理原始数据的月份列,去除空格得到规范列名(如Jan23)
  2. 转置原始DataFrame,将原指标列(A/B/C等)转为行,处理后的月份作为列
  3. 设置统一索引20230808
  4. 遍历转置后的行,生成对应每个指标的单独DataFrame(推荐用字典存储,方便批量管理大量列)

代码实现

import pandas as pd

# 构造原始DataFrame(实际场景可替换为你的数据读取逻辑,如pd.read_csv)
df = pd.DataFrame({
    'Month': ['Jan 23', 'Feb 23'],
    'A': [5, 8],
    'B': [7, 10],
    'C': [3, 8]
})

# 处理月份列,去除空格
df['Month'] = df['Month'].str.replace(' ', '')

# 转置数据并设置统一索引
transposed_df = df.set_index('Month').T
transposed_df.index = [20230808]

# 生成每个指标对应的单独DataFrame,存储在字典中(批量处理大量列更高效)
dfs_dict = {}
for col_name in transposed_df.columns:
    dfs_dict[f'Df{col_name}'] = transposed_df[[col_name]]

# 提取单个DataFrame示例
DfA = dfs_dict['DfA']
DfB = dfs_dict['DfB']
DfC = dfs_dict['DfC']

# 验证结果
print("DfA:\n", DfA)
print("\nDfB:\n", DfB)
print("\nDfC:\n", DfC)

输出结果

DfA:
            Jan23  Feb23
20230808      5      8

DfB:
            Jan23  Feb23
20230808      7     10

DfC:
            Jan23  Feb23
20230808      3      8

注意事项

如果原始DataFrame列数很多,用字典dfs_dict存储所有衍生DataFrame会比单独创建变量更便于管理,避免变量名冲突和混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:10:09