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

如何在Pandas中遍历DataFrame列表并打印名称及前2行数据

解决Pandas遍历DataFrame列表并打印名称与前2行的问题

问题核心

你创建的dflist = [df1, df2, df3, df4]里存储的是DataFrame对象本身,不是df1这类变量名称字符串,这是和Unix命令的本质区别——Unix处理的是文件名字符串,而Python列表里存的是实际数据对象,直接遍历拿不到变量名。

解决方案

方法1:用元组列表绑定名称与DataFrame

先把每个DataFrame和它的名称配对存储,再遍历打印:

# 构建名称与DataFrame的配对列表
df_with_names = [("df1", df1), ("df2", df2), ("df3", df3), ("df4", df4)]

# 遍历打印每个DataFrame的名称和前2行
for name, df in df_with_names:
    print(name)
    print(df.head(2))
    print("-" * 30)  # 分隔不同结果,提升可读性

方法2:用字典存储(更直观)

用字典的键存名称,值存DataFrame,遍历键值对即可:

# 构建字典
df_dict = {
    "df1": df1,
    "df2": df2,
    "df3": df3,
    "df4": df4
}

# 遍历打印
for name, df in df_dict.items():
    print(name)
    print(df.head(2))
    print("-" * 30)

补充:如果是从文件读取的DataFrame

如果你的DataFrame是从CSV等文件读取的,可以直接把文件名作为标识:

import pandas as pd

# 定义要读取的文件列表
file_list = ["US_distribution_of_soybean_aphid_2022.csv", ...]  # 替换为你的实际文件名
df_dict = {}

# 读取文件并存储到字典
for file_name in file_list:
    df_dict[file_name] = pd.read_csv(file_name)

# 遍历打印
for file_name, df in df_dict.items():
    print(file_name)
    print(df.head(2))
    print("-" * 30)

为什么之前的代码不符合预期

  • print('i')会打印字符串字面量i,而不是变量代表的DataFrame名称;
  • print(i)会直接输出整个DataFrame对象的内容,想要只显示前2行必须用df.head(2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:48:21