如何使用字符串为数据帧设置变量名称



我正在尝试使用 for 循环将一堆 csv 读入熊猫。我希望表名是扩展名之前完整文件路径的最后一位。例如

ACS_BV0002_2016_Age.csv 

Age 

我这样做是为了我可以创建将表名作为键,将列名和数据类型作为值的字典,然后我可以在 psycogpg2 中使用它在 postgresql 中一举创建我的所有表。

这似乎得到了我想要的名字:

path = r"C:DataWaste_InterventionCensus_TablesCleaned"
fList = os.listdir(path)
for doc in fList:
    csv = "{}\{}".format(path, doc)
    name = doc.split("_")[-1][:-4]
    pd.read_csv(csv)

有没有办法使用 name 的输出成为 pd.read_csv 读入的数据帧的变量名称?

从您的代码中,不清楚为什么要将read_csv的结果分配给您尝试分配给数据帧的项。无论如何,你问:

有没有办法将我想要的字符串传递到表中 pd.csv_read 的名称,以便我可以将路径中的所有 csv 放入 带有for循环的熊猫,并让它们保留简单易懂的 名字?

在这种情况下,您可以执行的操作数量有限。 DataFrame对象并没有真正与"名称"相关联,那么,您可以使用描述性变量名称来处理它。

但是,对于您希望创建可变数量的变量的情况,最简单的事情(我会做的(是使用字典。

dfs = {}
for doc in fList:
    i = "{}\{}".format(path, x[0])
    j = doc.split("_")[-1][:-4]
    dfs[j] = pd.read_csv(i)

现在,您可以使用 dfs['race'] 引用从ACS_16_5YR_B02001_race.csv加载的数据帧!

相关内容

  • 没有找到相关文章

最新更新