【发布时间】:2020-04-17 19:57:18
【问题描述】:
我正在导入多个数据帧并编写了以下过程:1. 要转换为数据帧的文件列表 + 2. 我想要的相应数据帧的名称列表。 3. 我把列表组合成字典:
tbls = ['tbl1', 'tbl2', 'tbl3']
dbname = ['dfABC', 'dfrand', 'dfXYZ']
dictdf = dict(zip(tbls, dbname))
然后我循环通过 tbls 来导入数据帧。 (下面的 getdf 是我编写的一个简短函数,用于读取表(数据)所在的 excel/csv 文件的路径、工作表名称等并导入数据。
for tbl in tbls:
dictdf[tbl] = getdf(tbl, dfRT, sfsession)
除了将数据帧写入字典之外,该过程有效,即字典中的 dfABC 被替换为 65K 行和 27 列的数据帧,依此类推。
我想要的是 dfABC = 65krows 和 27 cols 的数据帧。即在上面的代码中。我试过了:
str(dictdf[tbl]) = getdf(tbl, dfRT, sfsession)
但这给出了一个错误。有没有办法做到这一点?谢谢。
【问题讨论】:
-
为什么不希望 DataFrames 存储在 dict 中?这是更好的选择。我不知道为什么当 DataFrames 已经厌倦了字典中的一个键时,你为什么要分配单个变量。
-
为什么存储在字典中是更好的选择。我想处理这些数据框 - 即合并、拼接、添加新列等。如果它们位于字典中,我该怎么做?谢谢
-
只需从字典中调用 DataFrames:
dictdf['tbl1'] -
为什么存储在字典中是更好的选择?
-
使用字典比动态创建变量要好,因为它会减少复杂的代码。随着代码量(以及变量总数)的增长,跟踪某些特定的动态创建的变量将变得越来越困难。另一方面,跟踪单个字典变量要容易得多。
标签: python pandas dataframe dictionary