如何在 Python 中使用变量名作为字符串

How to use a variable name as string in Python

在 Python 中,我创建了一堆数据框,如下所示:

df1 = pd.read_csv("1.csv")
...
df50 = pd.read_csv("50.csv") # import modes may vary based on the csv, no real way to shorten this

对于每个数据帧,我想执行一个操作,需要指定一个字符串作为名称。例如,给定一个现有数据库 db,

df1.to_sql("df1", db) # and so on. 

数据帧可能有一个非连续的名字,所以我不能for i in range(1,51): "df"+str(i)

我正在寻找执行此操作的正确方法,而不是将此行重复 50 次。我的想法是

for df in [df1, df2... df50]: 
    df.to_sql(df.__name__, db) # but dataframes don't have a __name__
  1. 如何从调用 df1 的数据框中获取字符串 "df1"
  2. 有没有更好的方法来完成这一切?

如果您真的想访问该名称,请参阅 this answer,但一般来说,如链接答案中所述,您可能不应该这样做。