我正在尝试动态分配数据帧的名称,但失败了。
下面的代码将其分配给变量DataFrame_Name而不是DataFrame_Name的值
for i in range(0, len(Required_Reports_df)):
ReportName = Required_Reports_df.iloc[i]['Report Name']
ReportPath = Required_Reports_df.iloc[i]['Report Path']
DataFrame_Name = ReportName + "_df"
DataFrame_Name = pd.read_excel (ReportPath, skiprows=[ReportStartingHeaderRow])
除了拥有字典外,我在这里还有哪些选择。如果“字典”是最好的选择,那么我如何在此处使用字典-在此之前我应该考虑使用另一个for循环创建字典。
请帮助我。
答案 0 :(得分:1)
我正在尝试动态分配数据帧的名称。...如果“字典”是最好的选择
确实推荐使用字典:
dfs = {} # define empty dictionary to store your dataframes
# construct iterable of name, path pairs
zipper = zip(Required_Reports_df['Report Name'], Required_Reports_df['Report Path'])
# iterate name, path pairs and add items to dictionary
for name, path in zipper:
dfs[name] = pd.read_excel(path)
一旦您熟悉此模式,便可以更有效地重写为字典理解:
dfs = {name: pd.read_excel(path) for name, path in zipper}