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

如何从Pandas DataFrame中按文件名提取x_c、y_c列生成独立DataFrame

实现方案

假设你的原始DataFrame命名为raw_df,存储文件名的列名为filename,如果实际列名不同,替换代码中对应位置的字符串即可。

方法1:字典存储(更推荐,易批量维护)

不需要动态生成独立变量,后续调用更灵活:

import pandas as pd

# 生成目标文件名列表(0000到0036共37个文件)
target_files = [f"recon_image_{i:04d}.tif" for i in range(37)]

# 过滤有效数据,按文件名分组,仅保留x_c、y_c两列
grouped = raw_df[raw_df['filename'].isin(target_files)].groupby('filename')[['x_c', 'y_c']]

# 生成 文件名:子DataFrame 格式的字典
df_dict = {file: group.reset_index(drop=True) for file, group in grouped}

# 如需生成df1~df37的独立变量,添加以下代码即可
for idx in range(37):
    globals()[f'df{idx+1}'] = df_dict[f"recon_image_{idx:04d}.tif"]

方法2:直接生成独立变量

不需要字典存储,直接生成对应编号的DataFrame:

for idx in range(37):
    current_file = f"recon_image_{idx:04d}.tif"
    globals()[f'df{idx+1}'] = raw_df[raw_df['filename'] == current_file][['x_c', 'y_c']].reset_index(drop=True)

注意事项

  • reset_index(drop=True)用于清空子DataFrame继承的原始索引,如需保留原始索引可删除该部分
  • 当前编号规则为df1对应recon_image_0000.tif,df2对应recon_image_0001.tif,以此类推。如果需要编号和文件名的数字完全对齐,把代码中的df{idx+1}改为df{idx}即可
  • 如果原始数据中不存在某个目标文件,对应生成的DataFrame为空,可通过df1.empty判断是否有有效数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:45:04