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

如何将DataFrame列表的元素名称添加为对应DataFrame的列?

给列表中的每个DataFrame添加对应标签列

当然可以做到!不过有个小细节要注意:Python的列表本身不会记住元素原来的变量名,所以你得把每个DataFrame对应的标签信息和它绑定起来——这里有两种实用的方案,看哪种更适合你的情况:

方案1:用字典存储DataFrame(推荐)

如果还没把DataFrame放进列表,强烈建议先把它们存在字典里,用你想要保留的关键信息当字典的键(比如原来的变量名里的标识):

import pandas as pd

# 举个示例,假设你有两个带地域标识的DataFrame
df_ny = pd.DataFrame({"sales": [100, 200, 300]})
df_london = pd.DataFrame({"sales": [150, 250, 350]})

# 用字典把标签和DataFrame绑定起来
df_dict = {"ny": df_ny, "london": df_london}

# 给每个DataFrame添加标签列,之后转成列表(如果需要的话)
labeled_dfs = []
for label, df in df_dict.items():
    # 先复制一份,避免不小心修改原DataFrame
    df_with_label = df.copy()
    # 添加标签列,列名可以自己改,比如叫"region"或者"source"
    df_with_label["source_label"] = label
    labeled_dfs.append(df_with_label)

# 之后合并就很方便了
combined_df = pd.concat(labeled_dfs)

方案2:已有DataFrame列表?搭配标签列表就行

如果你已经把DataFrame都放进列表了,那只要准备一个和列表长度完全匹配的标签列表,保证顺序一一对应就行:

import pandas as pd

# 假设这是你已有的DataFrame列表
my_list = [df_ny, df_london]
# 对应的标签列表,顺序必须和my_list里的DataFrame一致
labels = ["ny", "london"]

# 遍历给每个DataFrame加标签列
labeled_dfs = []
for df, label in zip(my_list, labels):
    df_with_label = df.copy()
    df_with_label["source_label"] = label
    labeled_dfs.append(df_with_label)

# 合并所有带标签的DataFrame
combined_df = pd.concat(labeled_dfs)

小提醒:为啥不能直接从列表里拿元素名称?

Python里的变量名只是指向DataFrame对象的“指针”而已,列表里存的是对象本身,根本不知道它原来叫什么名字。所以必须手动提供标签信息——不管是通过字典的键,还是单独的标签列表,都得明确对应上。

如果你的标签是从文件名、数据库表名这类来源来的,只要把这些来源信息整理成标签列表,再和DataFrame列表配对处理就好啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:57:49